Skip to content

ci: replace Bitrise trigger with Runway pipeline in RC build workflows#28423

Merged
tommasini merged 7 commits into
mainfrom
chore/rc-auto-create-with-gh-actions
Apr 7, 2026
Merged

ci: replace Bitrise trigger with Runway pipeline in RC build workflows#28423
tommasini merged 7 commits into
mainfrom
chore/rc-auto-create-with-gh-actions

Conversation

@tommasini

@tommasini tommasini commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Description

build-rc-auto.yml and build-rc-create.yml previously triggered release candidate builds by calling .github/scripts/rc-builds.sh, which hit the Bitrise API directly. The team has since migrated to a GitHub-Actions-native build pipeline (runway-ota-build-core.ymlbuild.yml), used by the existing runway-ios-rc-workflow.yml and runway-android-rc-workflow.yml workflows. This PR brings the auto and manual RC build workflows in line with that standard.

What changed:

  • build-rc-auto.yml and build-rc-create.yml: removed the bump-version + trigger-rc-build (Bitrise) jobs. They are replaced by two sequenced calls to runway-ota-build-core.yml — iOS first (which performs the build-number bump and uploads to TestFlight), then Android with skip_version_bump: true. Top-level permissions are added as required by the reusable workflow.
  • The post-rc-build-comment / post-slack-notification jobs now read the build number straight from android/app/build.gradle on the release branch (after the iOS build has pushed its version-bump commit), so no additional workflow outputs are needed.
  • The Slack notification (previously embedded in rc-builds.sh) is now an explicit step in both workflows.
  • scripts/post-rc-build-comment.mjs: replaced the hard dependency on BITRISE_PIPELINE_URL / ANDROID_PUBLIC_URL (Bitrise artifacts) with a BUILD_PIPELINE_URL (GitHub Actions run URL). The Android row now gracefully falls back to linking the CI run instead of hard-failing when no public artifact URL exists.

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

N/A

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
Updates release-candidate build automation and notifications, plus expands workflow permissions; misconfiguration could break RC build sequencing, metadata reporting, or Slack/PR announcements.

Overview
RC build automation is migrated off the Bitrise-triggering rc-builds.sh path and onto the GitHub Actions Runway pipeline (runway-ota-build-core.yml), with iOS running first to perform the version bump and Android running second with skip_version_bump: true.

RC PR comments and Slack notifications are updated to read semver/build numbers from the repo tree via new scripts/get-build-metadata.sh, and notifications now link to the GitHub Actions run URL (with graceful fallback when no Android public install URL is available). The old manual RC workflow (build-rc-create.yml) is removed, and Runway RC workflows gain a reusable slack-rc-notification.yml step.

Reviewed by Cursor Bugbot for commit 1d8441f. Bugbot is set up for automated code reviews on this repo. Configure here.

Replace BITRISE_PIPELINE_URL with BUILD_PIPELINE_URL and handle missing
Android public URL gracefully by linking to the CI pipeline run instead
of hard-failing.

Made-with: Cursor
@tommasini tommasini self-assigned this Apr 6, 2026
@github-actions

github-actions Bot commented Apr 6, 2026

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 Apr 6, 2026
@github-actions github-actions Bot added the size-M label Apr 6, 2026
@github-project-automation github-project-automation Bot moved this to Needs dev review in PR review queue Apr 6, 2026

@Cal-L Cal-L left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

left some comments

Comment thread .github/workflows/build-rc-auto.yml Outdated
with:
platform: android
source_branch: ${{ needs.validate-and-check-label.outputs.branch-name }}
skip_version_bump: true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Add comment here that mentions the iOS step already handles version bumping

Comment thread .github/workflows/build-rc-auto.yml Outdated
- name: Read build number from repo
id: build-meta
run: |
BUILD_NUMBER=$(awk '/versionCode[[:space:]]/{print $2; exit}' android/app/build.gradle | tr -d '\r')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Derive another build number for iOS and display both iOS and Android for Slack. That will reflect the source of truth and make debugging easier.

Add scripts/get-build-metadata.sh as the single source of truth for
reading android_version_code, ios_version_code, and semantic_version
from the repo tree. All three consumers now call this script:

- build.yml (emit-build-metadata job)
- build-rc-auto.yml (post-rc-build-comment job)
- build-rc-create.yml (post-slack-notification job)

Both iOS and Android build numbers are now passed through to the
PR comment and Slack notification scripts, replacing the previous
single BUILD_NUMBER. Bitrise references in slack-rc-notification.mjs
are replaced with BUILD_PIPELINE_URL.

Made-with: Cursor
@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

E2E Fixture Validation — Schema is up to date
16 value mismatches detected (expected — fixture represents an existing user).
View details

@tommasini tommasini marked this pull request as ready for review April 7, 2026 14:45
@tommasini tommasini requested a review from a team as a code owner April 7, 2026 14:45
@github-actions github-actions Bot added the risk-low Low testing needed · Low bug introduction risk label Apr 7, 2026

@Cal-L Cal-L left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Left 1 comment

Comment thread .github/workflows/build-rc-create.yml Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Remove workflow, this isn't used anymore

@github-actions github-actions Bot added risk-low Low testing needed · Low bug introduction risk and removed risk-low Low testing needed · Low bug introduction risk labels Apr 7, 2026
@github-actions

github-actions Bot commented Apr 7, 2026

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: 97%
click to see 🤖 AI reasoning details

E2E Test Selection:
All 11 changed files are exclusively CI/CD infrastructure changes with zero impact on application source code:

  1. build-rc-auto.yml: Refactored RC build pipeline to use runway-ota-build-core.yml reusable workflow instead of Bitrise scripts. iOS builds first (performs version bump), Android follows (skips version bump). Added Slack notification job.

  2. build-rc-create.yml: Deleted - old manual RC build workflow removed.

  3. build.yml: Minor refactor - extracted metadata reading into get-build-metadata.sh script, added Node.js setup step before metadata reading.

  4. runway-android-rc-workflow.yml: Added Slack notification job after successful RC build.

  5. runway-ios-production-workflow.yml: Removed upload_testflight parameter (now always uploads to TestFlight for iOS).

  6. runway-ios-rc-workflow.yml: Removed upload_testflight parameter, added Slack notification job.

  7. runway-ota-build-core.yml: Removed upload_testflight input parameter - TestFlight upload now always runs for iOS platform.

  8. slack-rc-notification.yml: New reusable workflow for posting Slack RC build notifications.

  9. scripts/get-build-metadata.sh: New script as single source of truth for reading build metadata (android_version_code, ios_version_code, semantic_version).

  10. scripts/post-rc-build-comment.mjs: Updated to use separate IOS_BUILD_NUMBER/ANDROID_BUILD_NUMBER env vars, fallback to BUILD_PIPELINE_URL instead of BITRISE_PIPELINE_URL.

  11. scripts/slack-rc-notification.mjs: Updated to use separate iOS/Android build numbers, renamed Bitrise references to generic pipeline references.

None of these changes touch application source code, E2E test infrastructure, test fixtures, page objects, or any component that could affect test behavior. These are purely CI/CD pipeline orchestration changes for the RC build and notification process. No E2E tests need to run to validate these changes.

Performance Test Selection:
All changes are CI/CD infrastructure only - no application code, UI components, state management, or performance-sensitive paths were modified. No performance tests are warranted.

View GitHub Actions results

@sonarqubecloud

sonarqubecloud Bot commented Apr 7, 2026

Copy link
Copy Markdown

@Cal-L Cal-L left a comment

Copy link
Copy Markdown
Contributor

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 Apr 7, 2026
@tommasini tommasini added this pull request to the merge queue Apr 7, 2026
Merged via the queue into main with commit 4973b2f Apr 7, 2026
63 checks passed
@tommasini tommasini deleted the chore/rc-auto-create-with-gh-actions branch April 7, 2026 18:40
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 7, 2026
@weitingsun weitingsun added release-7.74.0 Issue or pull request that will be included in release 7.74.0 and removed release-7.78.0 labels Apr 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.74.0 Issue or pull request that will be included in release 7.74.0 risk-low Low testing needed · Low bug introduction risk size-M team-mobile-platform Mobile Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants