feat: deprioritize E2E jobs on Cirrus runners#29837
Conversation
Deprioritize E2E builds and test runs on Cirrus runners so that release/production pipeline jobs are serviced first when runner capacity is saturated.
|
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. |
E2E jobs on cherry-pick PRs to release/* branches now run at regular priority so they are not queued behind main-branch E2E work during a release cut. Uses startsWith(github.base_ref, 'release/') to detect release-targeted PRs and omit the low-priority label.
…runner-priority # Conflicts: # .github/workflows/build-android-e2e.yml # .github/workflows/build-ios-e2e.yml # .github/workflows/run-e2e-workflow.yml
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: The changes affect:
No app source code, test logic, controllers, Engine, or test infrastructure was modified. The change is purely about which GitHub Actions runner label is used for CI jobs on PRs vs. release branches. Since this is a CI infrastructure change that affects how E2E tests are dispatched and run, it's prudent to run at least one smoke test suite to validate the pipeline still functions correctly on the new runner configuration. SmokeAccounts is selected as a representative lightweight smoke suite to verify the end-to-end CI pipeline (build → run tests) works correctly with the new runner routing. Running all tags would be excessive for a pure runner label change. Performance Test Selection: |
|



Description
When Cirrus runner capacity is saturated, release/production build jobs compete equally with E2E builds, test runs, and fixture updates for runner slots. This means a time-sensitive release build can be queued behind dozens of E2E jobs triggered by PR pushes.
Cirrus Runners supports a binary priority system (regular and
low-priority). This PR addslow-priorityto all E2E/non-release Cirrus runner jobs so release pipeline jobs are serviced first during capacity saturation. When capacity is available, all jobs start immediately with no change in behavior.Jobs deprioritized (E2E, non-release):
build-android-e2e.yml- E2E Android APK buildbuild-ios-e2e.yml- E2E iOS app buildrun-e2e-workflow.yml- E2E test execution (both platforms)update-e2e-fixtures.yml- Fixture export/updateJobs kept at regular priority (release pipeline):
build.yml- Production/release native buildsetup-node-modules.yml- Dependency setup for production buildsupload-to-testflight.yml- TestFlight uploadThe
actionlint.yamlconfig already includeslow-priorityas a known self-hosted runner label (line 17).Note: A similar but narrower change was attempted in #19091 (Sep 2025, iOS E2E only, 1 file) and reverted in #19379 (12 days later, no documented reason). This PR covers both platforms and all 4 E2E workflow files.
Part of MCWP-574 (PR 5 of 5).
Changelog
CHANGELOG entry: null
Related issues
Fixes: MCWP-574
Manual testing steps
Screenshots/Recordings
N/A - CI pipeline change, no UI impact.
Pre-merge author checklist
Pre-merge reviewer checklist