You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: migrate perf builds from bitrise to GHA (#28420)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->
## **Description**
> Performance E2E BrowserStack builds are migrated off Bitrise and onto
GitHub Actions. The Android/iOS dual-build workflows now call the
reusable build.yml workflow (instead of triggering/polling Bitrise),
download the resulting APK/IPA artifacts, and upload them to
BrowserStack while emitting BrowserStack URLs/app IDs/versions.
>
> Build variants and configs were reshaped for BrowserStack use. New
builds.yml entries add dedicated BrowserStack build profiles for with
SRP vs seedless onboarding (and exp vs e2e BrowserStack flavors), plus
package.json scripts to target these build names; scripts/build.sh now
honors IS_BROWSERSTACK_BUILD to avoid emulator-only settings (x86_64
arch restriction and IS_SIM_BUILD=true).
>
> Performance workflow triggering/variants were adjusted.
run-performance-e2e-release.yml now runs on pushes only for metamaskbot
version-bump commits and explicitly forces build_variant: rc, while the
main performance workflow defaults build_variant to exp and updates
concurrency grouping and conditional steps accordingly.
## **Changelog**
<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`
If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`
(This helps the Release Engineer do their job more quickly and
accurately)
-->
CHANGELOG entry:
## **Related issues**
Fixes:
## **Manual testing steps**
```gherkin
Feature: my feature name
Scenario: user [verb for user action]
Given [describe expected initial app state]
When user [verb for user action]
Then [describe expected outcome]
```
## **Screenshots/Recordings**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
### **Before**
<!-- [screenshots/recordings] -->
### **After**
<!-- [screenshots/recordings] -->
## **Pre-merge author checklist**
- [ ] 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).
- [ ] I've completed the PR template to the best of my ability
- [ ] I've included tests if applicable
- [ ] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] 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.
## **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.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Medium risk due to broad CI/build pipeline changes (workflows, build
profiles, artifact handling) that can break build/upload automation or
alter build-time flags for e2e/perf runs.
>
> **Overview**
> **Moves Android/iOS “dual build + BrowserStack upload” workflows from
Bitrise-trigger/polling to the reusable `build.yml` GitHub Actions
workflow**, then downloads the resulting APK/IPA artifacts and uploads
them to BrowserStack while emitting URLs/app IDs/versions.
>
> **Reshapes build variants and configs for BrowserStack/performance
usage** by adding new `builds.yml` build profiles (e2e BrowserStack
with/without SRP; RC/EXP with/without SRP), adding matching
`package.json` build scripts, and teaching `scripts/build.sh` to honor
`IS_BROWSERSTACK_BUILD` (skip emulator-only x86_64 restrictions and
avoid forcing `IS_SIM_BUILD=true`).
>
> Updates performance/system workflows to default/validate
`build_variant` including `e2e`, adjust concurrency grouping and gating
(including release runs only on metamaskbot version-bump commits and
forcing `build_variant: rc`), and adds `IS_PERFORMANCE_TEST` to disable
E2E runtime overhead while keeping `E2E_MOCK_OAUTH` Metro mocks active;
also includes small Playwright stability tweaks (hide keyboard) and
hard-codes perf FF env to `test` for now.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
5c1e858. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
---------
Co-authored-by: Cal-L <cal.leung@consensys.net>
0 commit comments