ci: optimize release workflows and improve build caching#378
ci: optimize release workflows and improve build caching#378ignaciosantise merged 3 commits intomainfrom
Conversation
- Upgrade actions/checkout from v3 to v4 - Remove duplicate dependency install steps (already handled by ci-setup) - Simplify Gradle and CocoaPods cache paths - Skip pod repo updates when cache hits occur - Add ABI filtering for internal Android builds to reduce build time - Enable Ruby bundler caching on iOS builds Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 1m 1s —— View job Code ReviewTodo:
Found 2 issue(s)Issue 1: Gradle cache path includes conditional that always evaluatesID: release-android-gradle-path-df23 Context:
Recommendation: Consider keeping conditional logic or verify path: |
~/.gradle/caches
~/.gradle/wrapper
${{ inputs.is-expo-project == false && format('{0}/android/.gradle', inputs.root-path) || '' }}Issue 2: CocoaPods cache sharing may cause issues across incompatible branchesID: release-ios-pods-cache-7a8f Context:
Recommendation: Add CocoaPods specs repo version to cache key to ensure compatibility: key: ${{ runner.os }}-pods-${{ hashFiles(env.podfile_path, '~/.cocoapods/repos/trunk/.git/HEAD') }}Or revert to branch-specific caching if cross-branch sharing causes issues. SummaryPR optimizations look good overall. Main concerns:
Both changes improve performance but may introduce edge cases. Consider monitoring initial runs after merge. ✅ Automated checks passed: No workflow security issues, no external domains, PR size reasonable (3 files) |
There was a problem hiding this comment.
Pull request overview
This PR optimizes the Android and iOS release workflows by improving caching strategies and eliminating redundant operations. The changes focus on reducing CI/CD execution time while maintaining build correctness.
Changes:
- Upgraded GitHub Actions checkout from v3 to v4 for improved security and performance
- Optimized CocoaPods caching by enabling cross-branch cache sharing and conditionally skipping repository updates on cache hits
- Streamlined Android builds by removing duplicate dependency installations and adding ABI filtering for internal releases
- Enabled Ruby bundler caching to avoid redundant gem installations
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| fastlane/Fastfile | Added conditional logic to skip CocoaPods repo updates when cache is hit, reducing pod installation time |
| .github/workflows/release-ios-base.yaml | Updated checkout action to v4, simplified pod cache key for cross-branch sharing, enabled bundler-cache, and removed manual gem installation |
| .github/workflows/release-android-base.yaml | Updated checkout action to v4, added ABI filtering for internal builds to reduce build time, simplified Gradle cache path, and removed duplicate package manager install commands |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Restore conditional Gradle cache path for Expo project compatibility - Restore branch isolation in CocoaPods cache key to prevent stale specs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary
This PR optimizes the Android and iOS release workflows by improving caching efficiency and removing redundant steps. Key improvements include:
Performance Impact
These changes should reduce CI/CD workflow execution time by:
Implementation Details
graph LR A[Pod Cache Check] --> B{Cache Hit?} B -->|Yes| C[Skip repo_update] B -->|No| D[Run repo_update] C --> E[Faster cocoapods install] D --> E