fix(ci): assign unique build versions for nightly exp and rc builds#27660
Conversation
Both main-exp and main-rc share the same iOS bundle ID (MetaMask) so TestFlight rejects the second upload when both have the same CFBundleVersion. Call the external version generator once for exp (version N), then locally increment to N+1 for the rc build. Both builds still run in parallel after their respective version bumps. Made-with: Cursor
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: This change:
Since this is purely a CI/CD infrastructure change with no impact on the application code or test infrastructure, no E2E test tags need to be run. The nightly build workflow itself is not part of the PR E2E test pipeline. Performance Test Selection: |
|



Description
The nightly build workflow bumped the version only once and then built both
main-expandmain-rcfrom the same commit. Since both share the same iOS bundle ID (io.metamask.MetaMask— both areMETAMASK_BUILD_TYPE: main), TestFlight requires a uniqueCFBundleVersionper upload. The second upload would be rejected with a duplicate build number error.This fix introduces a two-step version bump strategy:
Both builds still run in parallel after their respective bumps, so no meaningful latency is added.
Changelog
CHANGELOG entry: null
Related issues
Fixes:
Manual testing steps
N/A — CI-only workflow change. Verify by triggering the nightly build workflow and confirming both exp and rc builds upload to TestFlight successfully with distinct build numbers.
Screenshots/Recordings
Before
N/A
After
N/A
Pre-merge author checklist
Pre-merge reviewer checklist
Made with Cursor
Note
Medium Risk
Changes the nightly GitHub Actions workflow to perform an additional version-bump commit and force-push before the RC build, which could disrupt nightly builds if the bump/push sequence fails or races.
Overview
Updates
nightly-build.ymlto split the single version bump into two jobs: an exp bump viaupdate-latest-build-version.yml, followed by an RC-only bump that increments the exp build number (N→N+1), commits the versioned files, and force-pushes to the nightly branch.The exp and rc build jobs are rewired to build from their respective bump commits (so TestFlight uploads no longer collide on
CFBundleVersion).Written by Cursor Bugbot for commit f223098. This will update automatically on new commits. Configure here.