Conversation
There was a problem hiding this comment.
Pull request overview
This PR modernizes the repository’s CI/CD setup around the #330 workflow/versioning requirements by removing legacy workflows, centralizing repeated Android release file setup into a composite action, and aligning develop/RC/production workflows with the intended branching and tagging model.
Changes:
- Removed obsolete GitHub Actions workflows and docs; updated changelog + workflow documentation.
- Added a reusable composite action to prepare Android keystore/secrets/google-services.json.
- Updated develop, RC (staging), production, and linting workflows to reflect new triggers and versioning responsibilities (including moving Codecov to linting).
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/core/lib/src/application/firebase/firebase_state.dart | Removes old Firebase bloc state (file deleted). |
| packages/core/lib/src/application/firebase/firebase_event.dart | Removes old Firebase bloc event (file deleted). |
| packages/core/lib/src/application/firebase/firebase_bloc.dart | Removes old Firebase bloc implementation (file deleted). |
| CHANGELOG.md | Replaces changelog contents with ticket-scoped summary for #330. |
| .github/workflows/staging_workflow.yml | Reworks RC workflow to run on PR updates targeting main, bumps build only, publishes to internal track. |
| .github/workflows/release_workflow.yml | Removes old tag/release workflow (file deleted). |
| .github/workflows/production_workflow.yml | Refactors production workflow to derive production version from RC tag and run as manual dispatch. |
| .github/workflows/linting_workflow.yml | Moves coverage + Codecov upload into linting workflow; merges LCOV outputs. |
| .github/workflows/develop_workflow.yml | Updates label-to-bump mapping (feature/bug) and uses shared Android release prep action. |
| .github/workflows/deploy_workflow.yml | Removes old deploy workflow (file deleted). |
| .github/workflows/build_workflow.yml | Removes old build workflow (file deleted). |
| .github/workflows/IMPROVEMENTS.md | Removes workflow improvements summary doc (file deleted). |
| .github/actions/prepare-android-release-files/action.yml | Adds composite action to create keystore/key.properties/secrets.dart and validate google-services.json. |
| .github/actions/check-version-labels/action.yml | Updates label parsing to map feature→minor and bug→patch (plus no-build). |
| .github/README.md | Updates workflow documentation to match the new CI/CD model. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| - opened | ||
| - synchronize | ||
| - reopened | ||
| - ready_for_review |
| #### Develop Triggers | ||
|
|
||
| ```yaml | ||
| on: | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] | ||
| branches: ["**"] | ||
| workflow_dispatch: | ||
| ``` |
| - name: Version Management | ||
| id: version_management | ||
| uses: ./.github/actions/version-management | ||
| with: | ||
| github_token: ${{ steps.generate_token.outputs.token }} | ||
| pubspec_path: apps/multichoice/pubspec.yaml | ||
| branch_name: rc | ||
| bump_type: ${{ steps.check_labels.outputs.bump_type }} | ||
| branch_name: ${{ steps.resolve_branch.outputs.target_branch }} | ||
| bump_type: none | ||
| version_suffix: "-RC" |
| # It derives the next production version from the latest RC tag by: | ||
| # - removing the -RC suffix | ||
| # - incrementing build number by 1 (no semantic major/minor/patch bump) | ||
| # | ||
| # Example: | ||
| # - latest RC tag: v1.3.7-RC+155 | ||
| # - production version built and released: 1.3.7+156 |
| # Resolve Production Version From Latest RC Tag | ||
| ############################################## | ||
| - name: Resolve Production Version From Latest RC Tag | ||
| id: resolve_version | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| git fetch --tags | ||
|
|
||
| latest_rc_tag=$(git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+-RC\+[0-9]+$' | head -n1) | ||
| if [[ -z "$latest_rc_tag" ]]; then | ||
| echo "::error::No RC tag found in format vX.Y.Z-RC+N" | ||
| exit 1 | ||
| fi | ||
|
|
||
| rc_version=${latest_rc_tag#v} |
| #### Staging Triggers | ||
|
|
||
| ```yaml | ||
| on: | ||
| pull_request: | ||
| branches: ["develop"] | ||
| types: [closed] | ||
| workflow_dispatch: |
|
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## develop #331 +/- ##
============================================
- Coverage 81.48% 26.54% -54.94%
============================================
Files 40 132 +92
Lines 1129 3872 +2743
============================================
+ Hits 920 1028 +108
- Misses 209 2844 +2635 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|



330 - DevOps - Update Workflows
prepare-android-release-files/action.ymlto reduce code duplicationCloses: #330