Skip to content

chore(runway): cherry-pick ci: enable external TestFlight distribution for RC and manual builds#30996

Merged
tommasini merged 1 commit into
release/7.80.0from
runway-cherry-pick-7.80.0-1780482184
Jun 3, 2026
Merged

chore(runway): cherry-pick ci: enable external TestFlight distribution for RC and manual builds#30996
tommasini merged 1 commit into
release/7.80.0from
runway-cherry-pick-7.80.0-1780482184

Conversation

@runway-github

@runway-github runway-github Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Description

RC and manual iOS builds were only uploaded to TestFlight internally
(distributed to Apple internal testers only). This change enables
external distribution to the MetaMask BETA & Release Candidates
TestFlight group automatically for all RC build paths.

Changes:

  • runway-rc-builds.yml (Runway manual RC trigger): passes
    distribute_external: true to upload-to-testflight.yml so the
    resulting IPA is distributed to external testers immediately after
    upload.
  • auto-rc-ota-build-core.yml (reusable core for auto RC): adds a
    distribute_external input (default false to keep the interface safe
    for other callers) and threads it through to the inner
    upload-ios-testflight job.
  • build-rc-auto.yml (auto RC on release/* push): passes
    distribute_external: true into auto-rc-ota-build-core.yml for the
    iOS build job.
  • build-and-upload-to-testflight.yml (manual build + upload
    workflow): flips the distribute_external default to true in both the
    workflow_call and workflow_dispatch input blocks. The
    testflight_group was already defaulting to MetaMask BETA & Release Candidates.

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

N/A

Screenshots/Recordings

Before

N/A

After

N/A

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
  • Use these power-user
    SRPs

    to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production
    performance metrics
  • See trace() for usage and
    addToken
    for an example

For performance guidelines and tooling, see the Performance
Guide
.

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 release automation defaults so RC and manual iOS builds may
reach external TestFlight groups without an explicit opt-in, which
widens who gets builds but stays within existing upload workflows.

Overview
RC and manual iOS CI paths now turn on external TestFlight
distribution by default
instead of stopping at internal-only upload.

auto-rc-ota-build-core.yml gains a distribute_external
workflow input and forwards it to upload-to-testflight.yml.
build-rc-auto.yml and runway-rc-builds.yml set
distribute_external: true on their iOS upload jobs so automated
and Runway-triggered RC builds reach external testers (e.g. MetaMask
BETA & Release Candidates
).

build-and-upload-to-testflight.yml changes the
distribute_external default from false to true for
both workflow_call and workflow_dispatch, so manual
build-and-upload runs distribute externally unless opted out.

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

[c37d99b](https://github.com/MetaMask/metamask-mobile/commit/c37d99bc3d651fc318ecb7705b0c2808703e5c6e)

…n for RC and manual builds (#30952)

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

RC and manual iOS builds were only uploaded to TestFlight internally
(distributed to Apple internal testers only). This change enables
external distribution to the `MetaMask BETA & Release Candidates`
TestFlight group automatically for all RC build paths.

**Changes:**

- **`runway-rc-builds.yml`** (Runway manual RC trigger): passes
`distribute_external: true` to `upload-to-testflight.yml` so the
resulting IPA is distributed to external testers immediately after
upload.
- **`auto-rc-ota-build-core.yml`** (reusable core for auto RC): adds a
`distribute_external` input (default `false` to keep the interface safe
for other callers) and threads it through to the inner
`upload-ios-testflight` job.
- **`build-rc-auto.yml`** (auto RC on `release/*` push): passes
`distribute_external: true` into `auto-rc-ota-build-core.yml` for the
iOS build job.
- **`build-and-upload-to-testflight.yml`** (manual build + upload
workflow): flips the `distribute_external` default to `true` in both the
`workflow_call` and `workflow_dispatch` input blocks. The
`testflight_group` was already defaulting to `MetaMask BETA & Release
Candidates`.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

### **Before**

N/A

### **After**

N/A

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

#### Performance checks (if applicable)

- [x] I've tested on Android
  - Ideally on a mid-range device; emulator is acceptable
- [x] I've tested with a power user scenario
- Use these [power-user
SRPs](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/edit-v2/401401446401?draftShareId=9d77e1e1-4bdc-4be1-9ebb-ccd916988d93)
to import wallets with many accounts and tokens
- [x] I've instrumented key operations with Sentry traces for production
performance metrics
- See [`trace()`](/app/util/trace.ts) for usage and
[`addToken`](/app/components/Views/AddAsset/components/AddCustomToken/AddCustomToken.tsx#L274)
for an example

For performance guidelines and tooling, see the [Performance
Guide](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/400085549067/Performance+Guide+for+Engineers).

## **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.

<!-- Generated with the help of the pr-description AI skill -->

Made with [Cursor](https://cursor.com)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes release automation defaults so RC and manual iOS builds may
reach external TestFlight groups without an explicit opt-in, which
widens who gets builds but stays within existing upload workflows.
> 
> **Overview**
> RC and manual iOS CI paths now **turn on external TestFlight
distribution by default** instead of stopping at internal-only upload.
> 
> **`auto-rc-ota-build-core.yml`** gains a **`distribute_external`**
workflow input and forwards it to **`upload-to-testflight.yml`**.
**`build-rc-auto.yml`** and **`runway-rc-builds.yml`** set
**`distribute_external: true`** on their iOS upload jobs so automated
and Runway-triggered RC builds reach external testers (e.g. **MetaMask
BETA & Release Candidates**).
> 
> **`build-and-upload-to-testflight.yml`** changes the
**`distribute_external`** default from **`false`** to **`true`** for
both **`workflow_call`** and **`workflow_dispatch`**, so manual
build-and-upload runs distribute externally unless opted out.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
44989c3. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@runway-github runway-github Bot requested review from a team as code owners June 3, 2026 10:23
@github-actions

github-actions Bot commented Jun 3, 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.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Jun 3, 2026
@github-actions github-actions Bot added the size-S label Jun 3, 2026
@tommasini tommasini merged commit 8d8a173 into release/7.80.0 Jun 3, 2026
150 of 156 checks passed
@tommasini tommasini deleted the runway-cherry-pick-7.80.0-1780482184 branch June 3, 2026 12:44
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

size-S team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant