Update actions - #69
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR updates the GitHub Actions CI/CD workflow to improve build performance through parallel job execution and enhanced caching strategies. The changes enable the build, lint, and test jobs to run concurrently instead of sequentially, reducing total build time by approximately 48%.
Key changes include:
- Parallel execution of lint, build, and test jobs (previously sequential)
- Configuration cache enabled across all Gradle commands for 30-50% faster builds
- Updated GitHub Actions to v5 and enhanced Gradle properties for CI optimization
Reviewed Changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/main.yml |
Updated job dependencies for parallel execution, upgraded actions to v5, added configuration cache flag and encryption key |
.github/ci-gradle.properties |
Enhanced CI-specific Gradle settings with increased workers, configuration cache, and optimized JVM settings |
gradle.properties |
Optimized local development with increased memory, parallel execution, and configuration cache |
README.md |
Added CI/CD Quick Start section with local testing commands and documentation links |
docs/quick-start-ci.md |
New comprehensive guide for CI/CD setup and local development workflow |
docs/ci-workflow-guide.md |
Updated with parallel execution details, timing expectations, and troubleshooting guidance |
docs/ci-build-optimization.md |
New optimization guide with performance tuning recommendations |
chai/build.gradle.kts |
Disabled BuildConfig generation and reorganized build features configuration |
chaidemo/build.gradle.kts |
Added explicit debug build type configuration and disabled BuildConfig |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| uses: gradle/actions/setup-gradle@v4 | ||
| uses: gradle/actions/setup-gradle@v5 | ||
| with: | ||
| cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} |
There was a problem hiding this comment.
The cache-encryption-key parameter requires a secret to be configured in the repository settings. Add a note in the PR description or documentation explaining that GRADLE_ENCRYPTION_KEY must be set up in GitHub repository secrets before this workflow will function correctly.
| cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} | |
| cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} | |
| # NOTE: The cache-encryption-key parameter requires the GRADLE_ENCRYPTION_KEY secret to be configured | |
| # in the repository settings. Please ensure that GRADLE_ENCRYPTION_KEY is set in GitHub repository secrets | |
| # before this workflow will function correctly. |
| //See if i can add this to build Logic | ||
| debug { | ||
| isMinifyEnabled = false | ||
| } | ||
| } | ||
|
|
||
| // Disable BuildConfig generation for library (not needed, saves build time) | ||
| //See if i can add this to build Logic |
There was a problem hiding this comment.
The comment 'See if i can add this to build Logic' should be either removed or converted to a proper TODO comment. If this is a planned refactoring, use // TODO: Move to build logic for better tracking.
| //See if i can add this to build Logic | |
| debug { | |
| isMinifyEnabled = false | |
| } | |
| } | |
| // Disable BuildConfig generation for library (not needed, saves build time) | |
| //See if i can add this to build Logic | |
| // TODO: Move to build logic | |
| debug { | |
| isMinifyEnabled = false | |
| } | |
| } | |
| // Disable BuildConfig generation for library (not needed, saves build time) | |
| // TODO: Move to build logic |
| // Disable BuildConfig generation for library (not needed, saves build time) | ||
| //See if i can add this to build Logic | ||
| buildFeatures { | ||
| buildConfig = false | ||
| compose = true | ||
| } |
There was a problem hiding this comment.
The comment 'See if i can add this to build Logic' should be either removed or converted to a proper TODO comment. If this is a planned refactoring, use // TODO: Move to build logic for better tracking.
! Edit this before submitting your PR !(Remove this after editing)
name: Pull request
about: Create a pull request
label: 'triage me'
Fixes Referenced Issue #_.
How can this PR be tested?
Thank you for opening a Pull Request!
Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
./gradlew --init-script gradle/init.gradle.kts spotlessApplyto automatically apply formatting)Is this your first Pull Request?
./tools/setup.shFixes #<issue_number_goes_here> 🦕
Screenshot