Skip to content

fix(ci): assign unique build versions for nightly exp and rc builds#27660

Merged
tommasini merged 1 commit into
mainfrom
chore/fix-colision-nightly-build-number
Mar 19, 2026
Merged

fix(ci): assign unique build versions for nightly exp and rc builds#27660
tommasini merged 1 commit into
mainfrom
chore/fix-colision-nightly-build-number

Conversation

@tommasini
Copy link
Copy Markdown
Contributor

@tommasini tommasini commented Mar 18, 2026

Description

The nightly build workflow bumped the version only once and then built both main-exp and main-rc from the same commit. Since both share the same iOS bundle ID (io.metamask.MetaMask — both are METAMASK_BUILD_TYPE: main), TestFlight requires a unique CFBundleVersion per upload. The second upload would be rejected with a duplicate build number error.

This fix introduces a two-step version bump strategy:

  1. Call the external version generator once → version N (for exp)
  2. Locally increment to N+1 and commit (for rc)

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

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

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.yml to split the single version bump into two jobs: an exp bump via update-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.

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
@tommasini tommasini self-assigned this Mar 18, 2026
@github-actions
Copy link
Copy Markdown
Contributor

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.

@metamaskbot metamaskbot added the team-mobile-platform Mobile Platform team label Mar 18, 2026
@github-actions github-actions Bot added the risk-low Low testing needed · Low bug introduction risk label Mar 18, 2026
@github-project-automation github-project-automation Bot moved this to Needs dev review in PR review queue Mar 18, 2026
@tommasini tommasini added no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed skip-e2e skip E2E test jobs labels Mar 18, 2026
@tommasini tommasini marked this pull request as ready for review March 18, 2026 22:09
@tommasini tommasini requested a review from a team as a code owner March 18, 2026 22:09
@github-actions github-actions Bot added size-S risk-low Low testing needed · Low bug introduction risk and removed risk-low Low testing needed · Low bug introduction risk labels Mar 18, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 95%
click to see 🤖 AI reasoning details

E2E Test Selection:
The only changed file is .github/workflows/nightly-build.yml, which is a pure CI/CD workflow change. The modification splits the single bump-version job into two separate jobs (bump-version-exp and bump-version-rc) to ensure unique CFBundleVersion values when uploading both exp and rc builds to TestFlight (which requires unique bundle versions per upload).

This change:

  1. Does NOT touch any application source code
  2. Does NOT modify any test files or test infrastructure (no changes to tests/, page-objects, fixtures, etc.)
  3. Does NOT affect any E2E test configuration or Detox setup
  4. Only affects the nightly build pipeline's version bumping strategy
  5. Has zero impact on app behavior, UI, controllers, or user flows

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:
The change is limited to the nightly build CI workflow (version bumping strategy). No application code, UI components, state management, or performance-sensitive paths were modified. Performance tests are not warranted.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@Cal-L Cal-L left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@github-project-automation github-project-automation Bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Mar 18, 2026
@tommasini tommasini added this pull request to the merge queue Mar 19, 2026
Merged via the queue into main with commit 34182c0 Mar 19, 2026
115 of 137 checks passed
@tommasini tommasini deleted the chore/fix-colision-nightly-build-number branch March 19, 2026 10:40
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 19, 2026
@metamaskbot metamaskbot added the release-7.71.0 Issue or pull request that will be included in release 7.71.0 label Mar 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.71.0 Issue or pull request that will be included in release 7.71.0 risk-low Low testing needed · Low bug introduction risk size-S skip-e2e skip E2E test jobs team-mobile-platform Mobile Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants