ci: extract mobile CI status gate#29619
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. |
eaae025 to
5ba7492
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors the Mobile CI workflow’s final “status gate” by extracting the gating logic into a new composite action, while keeping the existing required status check name “Check all jobs pass”.
Changes:
- Added a composite action at
.github/actions/ci-status-gateto evaluateneedsresults and write a step summary table. - Updated
.github/workflows/ci.ymlso the Check all jobs pass job checks out and runs the composite action. - Removed the intermediate All jobs pass job and inlined its evaluation into the composite action.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Replaces inline gating logic with a call to the new local composite action, and removes the intermediate aggregator job. |
.github/actions/ci-status-gate/action.yml |
Introduces the composite action that parses needs + requirements outputs, applies skip/fail rules, and writes a step summary table. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
These changes are a structural refactoring of CI pipeline gate logic only. They do not touch:
No E2E tests are needed to validate CI workflow refactoring. The changes only affect how GitHub Actions determines if CI has passed - they have zero impact on app functionality, user flows, or test correctness. Running E2E tests would not validate these CI changes in any meaningful way. Performance Test Selection: |
|



Description
This PR extracts the final Mobile CI status gate into a composite action while preserving the existing
Check all jobs passstatus check name.Why:
What changed:
.github/actions/ci-status-gate..github/workflows/ci.ymlsoCheck all jobs passcalls the composite action.All jobs passjob.Changelog
CHANGELOG entry: null
Related issues
No public issue: CI maintenance refactor.
Manual testing steps
Validated the workflow files locally:
actionlint -color -config-file .github/actionlint.yaml .github/workflows/ci.yml ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); YAML.load_file(".github/actions/ci-status-gate/action.yml")' git diff --checkValidated extracted gate behavior in the public test fork:
https://github.com/consensys-test/metamask-mobile-test
Non-ignorable app-code PR with
pr-not-ready-for-e2e:Check all jobs passfailed as expected becauseblock_merge_for_e2e_readiness=true.Locale-only PR without readiness blocking: E2E build/test jobs skipped, and the final gate accepted those skips.
Locale-only PR with
pr-not-ready-for-e2e: E2E jobs stayed skipped andCheck all jobs passpassed.Standard CI failure:
Check all jobs passfailed when a required standard CI job failed.E2E job failure:
Check all jobs passfailed when an E2E smoke job failed.Build job failure:
Check all jobs passfailed when an E2E build job failed.Screenshots/Recordings
Before
N/A
After
N/A
Pre-merge author checklist
Pre-merge reviewer checklist