{"id":19882803,"url":"https://github.com/reactivecircus/release-probe","last_synced_at":"2025-05-02T14:32:42.713Z","repository":{"id":48289853,"uuid":"142655149","full_name":"ReactiveCircus/release-probe","owner":"ReactiveCircus","description":"An Android app for tracking new releases of libraries and dependencies from various sources.","archived":false,"fork":false,"pushed_at":"2023-02-18T00:32:53.000Z","size":974,"stargazers_count":10,"open_issues_count":7,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-21T11:57:11.574Z","etag":null,"topics":["android","androidx","architecture-components","blueprint","clean-architecture","kotlin","kotlin-coroutines","kotlin-flow","microservices-architecture","mvi","single-activity","unidirectional-data-flow"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReactiveCircus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-28T07:03:09.000Z","updated_at":"2024-05-13T23:23:24.000Z","dependencies_parsed_at":"2022-08-28T02:41:42.253Z","dependency_job_id":null,"html_url":"https://github.com/ReactiveCircus/release-probe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveCircus%2Frelease-probe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveCircus%2Frelease-probe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveCircus%2Frelease-probe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveCircus%2Frelease-probe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReactiveCircus","download_url":"https://codeload.github.com/ReactiveCircus/release-probe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224315444,"owners_count":17291048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","androidx","architecture-components","blueprint","clean-architecture","kotlin","kotlin-coroutines","kotlin-flow","microservices-architecture","mvi","single-activity","unidirectional-data-flow"],"created_at":"2024-11-12T17:18:33.595Z","updated_at":"2024-11-12T17:18:34.305Z","avatar_url":"https://github.com/ReactiveCircus.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReleaseProbe\n\n[![CircleCI](https://circleci.com/gh/ReactiveCircus/release-probe.svg?style=svg)](https://circleci.com/gh/ReactiveCircus/release-probe)\n[![GitHub Actions status](https://github.com/ReactiveCircus/release-probe/workflows/Instrumented%20test%20workflow/badge.svg)](https://github.com/ReactiveCircus/release-probe/actions)\n[![Android API](https://img.shields.io/badge/API-23%2B-blue.svg?style=flat-square\u0026label=API\u0026maxAge=300)](https://www.android.com/history/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square\u0026maxAge=3600)](https://opensource.org/licenses/MIT)\n\nAn Android app for monitoring new releases of libraries and dependencies such as AndroidX, Firebase and other popular 3rd party libraries on GitHub. Get notified when your favourite library has a new release.\n\n## Goals\nThe main goal of this project is to experiment with some of the latest technologies including, libraries, architecture, infrastructure, tooling, design patterns in Android development, and apply them in a non-trivial project. Therefore it's expected that the focus will be mostly on the technologies rather than adding new features. Current tech stack is documented below.\n\n## Tech Stack\n\n### Language\n100% Kotlin.\n\nTODO\n\n### Architecture Guideline\n\nTODO\n\n### Core Libraries\n\nTODO\n\n### Microservices Architecture\n\nTODO\n\n### Project Dependency Graph\n\nTo get a visualization of the project's dependency graph ([Graphviz](https://brewinstall.org/Install-graphviz-on-Mac-with-Brew/) required):\n\n```\n./gradlew projectDependencyGraph\n```\n\nThe generated project dependency graph is available at `./build/reports/dependency-graph/project.dot.png`.\n\n### Testing\n\nTODO\n\n### Code Quality\n\nIn addition to Android Lint, [detekt](https://github.com/arturbosch/detekt) has been configured for Kotlin static analysis.\n\n### Continuous Integration\n\nWe use **CircleCI** for CI/CD. We also have a separate workflow for running instrumented tests with **GitHub Actions**.\n\n### Workflow\n\n#### All pull requests and pushes to main\n\n* **build (CircleCI)** - assembles the release APK and App Bundle\n* **unit_tests (CircleCI)** - runs all unit tests\n* **static_analysis (CircleCI)** - runs Android Lint and detekt\n* **Run Instrumented Tests (GitHub Actions)** - runs instrumented tests on Emulators\n\n#### On release branches only\n\n* **deploy_to_play (CircleCI)** - deploys the release App Bundle to Google Play's internal test channel\n\n### Docker Container\n[reactivecircus/android-sdk](https://hub.docker.com/r/reactivecircus/android-sdk/) is used for running CI jobs. Dockerfiles are available on [GitHub](https://github.com/reactivecircus/docker-android-images)\n\n### Running Instrumented Tests with GitHub Actions\n\nRunning proper automated UI tests on CI remains a challenge especially when operating with free plans for side projects.\n\nTherefore we are running our instrumented tests with a custom GitHub Action - [Android Emulator Runner](https://github.com/ReactiveCircus/android-emulator-runner) which installs, configures and runs Android Emulators on **macOS** virtual machines with hardware acceleration enabled. \n\n## Building\n\n### Bugsnag\n\nA Bugsnag API key is required. Place the following in `~/.gradle/gradle.properties`:\n```\nRELEASE_PROBE_BUGSNAG_API_KEY=\u003ckey\u003e\n```\n\n### APK and Bundle\n\nThe following will generate the unsigned APK and AAB (App Bundle) files.\n\n`./gradlew assemble bundle`\n\nSigned APK and AAB will be generated when the release keystore and signing credentials are provided, which happens on CI builds.\n\n## TODO\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivecircus%2Frelease-probe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactivecircus%2Frelease-probe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivecircus%2Frelease-probe/lists"}