ci: change create release PR to bump OTA version#28202
Conversation
|
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:
None of these changes affect:
Running E2E tests would provide zero validation value for these purely CI/release-pipeline changes. Performance Test Selection: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #28202 +/- ##
=======================================
Coverage 82.29% 82.29%
=======================================
Files 4904 4906 +2
Lines 128690 128690
Branches 28691 28692 +1
=======================================
+ Hits 105903 105905 +2
+ Misses 15514 15509 -5
- Partials 7273 7276 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|



Description
Runway OTA hotfixes use a two-digit patch (e.g. 7.76.01) so CI can distinguish OTA hotfixes from native hotfixes (7.76.1). That form is not valid SemVer, so @metamask/auto-changelog fails when the release changelog workflow passes it through unchanged.
This PR:
Detects OTA hotfixes when the patch segment has exactly two digits (resolve-bases in create-release-pr.yml) and sets is_ota.
Skips native semver / build-version bump for OTA: generate-build-version is skipped; create-release-pr still runs using always() and explicit job-result checks so skipped dependents do not block the job.
Bumps only OTA_VERSION in app/constants/ota.ts via bump-ota-version-constants.sh, commits and pushes the release branch, and creates a draft PR to stable when none exists. A prior gh pr list check avoids double-bumping on retries.
Changelog: run-update-release-changelog-mobile.sh calls github-tools update-release-changelog.sh with a SemVer prerelease mapping X.Y.AB → X.Y.A-ota.B so headers stay valid for auto-changelog. Comparison URLs are post-processed on release-changelog/ so GitHub compare links use the real Runway tag (e.g. v7.76.01) instead of a non-existent v7.76.0-ota.1.
Wires update-release-changelog.yml and the OTA path in create-release-pr.yml through that wrapper (with github-tools checkout + yarn install + script).
Hardens runway-ota-build-core.yml by parsing OTA_VERSION from the export line instead of a fixed line number (comment length changes).
Documents the convention in auto-create-release-pr.yml comments and app/constants/ota.ts JSDoc; adjusts Runway workflow comments that referenced a specific line.
Testing:
OTA hotfix 7.77.01 ✅
release PR: #28478
changelog PR: https://github.com/MetaMask/metamask-mobile/pull/28477/changes
Binary hotfix 7.77.3 ✅
release PR: #28485
changelog PR: #28484
OTA hotfix 7.77.31 ✅
release PR: #28488
changelog PR: https://github.com/MetaMask/metamask-mobile/pull/28487/changes
Changelog
CHANGELOG entry: ci: include OTA version bump when creating a new release branch
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist
Note
Medium Risk
Changes release automation workflows to treat two-digit patch releases as OTA hotfixes, including branch pushes and changelog generation. Risk is medium because it modifies CI/release pipelines and version/tag mapping, which could impact release PR creation or changelog correctness if the heuristics misclassify versions.
Overview
Adds first-class OTA hotfix handling for
release/X.Y.ABbranches (two-digit patch) in the release PR and changelog automation.For OTA hotfixes,
create-release-pr.ymlnow skips native version/build bumps, bumpsOTA_VERSIONinapp/constants/ota.tstovX.Y.AB, updates the release changelog via a new wrapper, and creates a draft OTA release PR (while guarding against retries when a PR already exists).Changelog generation is made SemVer-safe by converting Runway’s two-digit patch format to a SemVer prerelease (e.g.
7.77.01→7.77.0-ota.1) and then post-fixing comparison URLs back to Runway tags; OTA bump detection inrunway-ota-build-core.ymlis also hardened to parseOTA_VERSIONby pattern instead of a fixed line number.Reviewed by Cursor Bugbot for commit 3456ce7. Bugbot is set up for automated code reviews on this repo. Configure here.