-
Notifications
You must be signed in to change notification settings - Fork 0
AN + KMP nightly builds, refactor to reusable composite actions #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Encapsulates the logic for detecting KMP project changes into a dedicated GitHub Action, improving modularity and reusability across workflows.
Ensures unique cache keys per workflow and branch to prevent collisions and improve caching reliability.
This commit introduces new composite GitHub Actions for Android projects to standardize CI/CD workflows. These actions include building for Firebase App Distribution, building for Google Play, running lint and unit tests, and setting up the Android environment.
The `bundle_file` output was incorrectly set to the literal string "BUNDLE_FILE" instead of the variable's value due to a missing dollar sign for variable expansion. This commit fixes the issue.
Encapsulate environment setup and check execution into reusable GitHub Actions.
Ensure local GitHub Actions are referenced with explicit relative paths to prevent resolution issues.
Reference `android-setup-environment` and `android-check` from `futuredapp/.github`'s `feature/matsem/changelog-android` branch.
…ken` Replace `secrets.GITHUB_TOKEN` with the recommended `github.token` for better readability and consistency.
…te actions Replace inline steps with reusable `android-setup-environment` and `android-build-googlePlay` composite actions from `futuredapp/.github`. Add TODOs to update branch references to `main`.
This workflow automates nightly builds for Android projects, including changelog generation and Firebase App Distribution. The `package_gradle_task` in `android-build-firebase` action is updated to require explicit definition.
Introduces caching of the last successfully built commit's SHA to optimize subsequent nightly builds.
Ensure the commit SHA of the latest nightly build is explicitly saved to a file for tracking and caching.
Encapsulate build and upload logic into reusable GitHub Actions for better maintainability and reusability.
The existing workflow for generating Android baseline profiles was refactored to extract the core logic into a dedicated, reusable GitHub Action. This improves modularity and simplifies the workflow definition. The workflow file was also renamed to reflect its cloud context.
Added entries for nightly build and baseline profile generation workflows.
…Gradle properties Updated Firebase and Google Play build workflows to pass build variables as Gradle properties. This resolves an issue with sticky build variables when using configuration cache.
…or` actions Replaced references to `feature/matsem/changelog-android` with `feature/android-refactor` across workflows for consistency and improved maintainability.
…rets as Gradle properties" This reverts commit eae0553.
# Conflicts: # README.md
… workflow Introduced a new `ios-build` reusable action to streamline iOS builds and uploads to TestFlight. Updated `ios-kmp-selfhosted-build.yml` to integrate the new action and added a nightly build workflow for improved automation.
…n Android CI action Introduced inputs to enable or disable the setup of Java, Ruby, and Gradle independently in `.github/actions/android-setup-environment`. Updated steps to conditionally execute based on these inputs for enhanced flexibility.
Ruby is already installed on runner
This workflow automates nightly builds for KMP projects, including Android and iOS, changelog generation, and build caching.
Adds a new workflow to the table and introduces a Mermaid diagram to visualize workflow and action dependencies for better understanding.
This reverts commit be8c542.
- Added `workflows-lint` and `kmp-combined-nightly-build` workflows to the table. - Fixed formatting inconsistency for `iOS (KMP)` workflow entry.
…kflow - Removed redundant input definitions for `ios_secret_properties` and modified references to use `secrets`. - Adjusted formatting and cleaned up unnecessary lines for better readability.
…enerate-baseline-profiles` - Ensures consistency and avoids potential shell mismatches across defined steps.
- Temporarily point to `feature/android-refactor` branch with a TODO note to update to `main`.
- Replaced `feature/android-refactor` branch references with `main`. - Removed outdated TODO comments regarding branch updates.
- Replaced `ios-build` action with `ios-kmp-build` in KMP workflows for consistency.
…d release workflow
…tly-build.yml` - Updated all input and secret variable names to use uppercase casing for consistency. - Adjusted workflow references to align with new variable names.
Syntey
approved these changes
Oct 2, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Intro
This PR refactors GitHub Actions workflows by introducing 6 reusable composite actions for Android and KMP projects, eliminating code duplication and improving maintainability. The changes consolidate common CI/CD patterns into modular components, enhance caching mechanisms, and add two new nightly build
workflows for automated Android and cross-platform KMP deployments.
Key Features
android-setup-environment- Java, Gradle, and Ruby setupandroid-check- Lint checks and unit tests with Danger integrationandroid-build-firebase- Enterprise builds with Firebase App Distributionandroid-build-googlePlay- Release builds for Google Play Storeandroid-generate-baseline-profiles- Automated baseline profile generationios-kmp-build- iOS/KMP builds with TestFlight uploadkmp-detect-changes- Platform-specific change detectionandroid-cloud-nightly-build.yml- Automated Android enterprise builds with changelog generationkmp-combined-nightly-build.yml- Automated nightly builds for both iOS and Android with with changelog generationBreaking Changes
This guide outlines the necessary changes for existing users integrating with the updated Android workflows.
Summary of Changes
Firebase App Distribution Workflow
BUNDLE_GRADLE_TASK→PACKAGE_GRADLE_TASKSIGNING_KEYSTORE_PATHinputSIGNING_KEYSTORE_PASSWORD,SIGNING_KEY_ALIAS,SIGNING_KEY_PASSWORD)Google Play Workflow
SIGNING_KEYSTORE_PATHinput (was unused)Detailed guides
Firebase App Distribution Workflow Changes
Required Input Changes
1. Rename
BUNDLE_GRADLE_TASKtoPACKAGE_GRADLE_TASKBefore:
After:
2. Remove
SIGNING_KEYSTORE_PATHInputBefore:
After:
Required Secret Changes
Remove All Signing Secrets
The following secrets are no longer required and should be removed from your workflow calls:
Remove these secrets:
SIGNING_KEYSTORE_PASSWORDSIGNING_KEY_ALIASSIGNING_KEY_PASSWORDBefore:
After:
Complete Migration Example
Before:
After:
Google Play Workflow Changes
Required Input Changes
Remove
SIGNING_KEYSTORE_PATHInputBefore:
After:
Complete Migration Example
Before:
After:
Technical Background
Firebase App Distribution Changes
The underlying logic no longer uses bundletool to create and sign universal APKs. Instead, the workflow now uses the built-in Android Gradle Plugin task for packaging universal APKs, which eliminates the need for external keystore handling and signing configuration.
Google Play Changes
The
SIGNING_KEYSTORE_PATHinput was unused and has been removed for consistency and clarity.