Skip to content

ci: extract mobile CI status gate#29619

Merged
Qbandev merged 5 commits into
mainfrom
mcwp-440-gate-extraction
May 5, 2026
Merged

ci: extract mobile CI status gate#29619
Qbandev merged 5 commits into
mainfrom
mcwp-440-gate-extraction

Conversation

@Qbandev

@Qbandev Qbandev commented May 1, 2026

Copy link
Copy Markdown
Contributor

Description

This PR extracts the final Mobile CI status gate into a composite action while preserving the existing Check all jobs pass status check name.

Why:

  • The final gate decides whether the workflow should pass after standard CI, E2E build/test jobs, fork-only skips, and merge queue skips complete.
  • Keeping that logic in a dedicated action makes the workflow easier to maintain and keeps the pass/fail decision consistent.

What changed:

  • Added .github/actions/ci-status-gate.
  • Updated .github/workflows/ci.yml so Check all jobs pass calls the composite action.
  • Removed the intermediate All jobs pass job.
  • Preserved current handling for failed jobs, cancelled jobs, skipped E2E jobs, fork PR skips, merge queue skips, and E2E readiness blocking.
  • Added a step summary table that explains each job result evaluated by the gate.

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 --check

Validated extracted gate behavior in the public test fork:
https://github.com/consensys-test/metamask-mobile-test

Screenshots/Recordings

Before

N/A

After

N/A

Pre-merge author checklist

  • I've followed MetaMask Contributor Docs and MetaMask Mobile Coding Standards.
  • 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 format if applicable
  • I've applied the right labels on the PR if applicable.

Pre-merge reviewer checklist

  • I've manually tested the PR where applicable.
  • I confirm that this PR addresses the described change and includes the necessary testing evidence.

@Qbandev Qbandev self-assigned this May 1, 2026
@github-actions

github-actions Bot commented May 1, 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.

@metamaskbotv2 metamaskbotv2 Bot added the team-dev-ops DevOps team label May 1, 2026
@Qbandev Qbandev added DO-NOT-MERGE Pull requests that should not be merged no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels May 1, 2026
@github-actions github-actions Bot added the size-M label May 1, 2026
@Qbandev Qbandev added DO-NOT-MERGE Pull requests that should not be merged and removed DO-NOT-MERGE Pull requests that should not be merged labels May 4, 2026
@Qbandev Qbandev force-pushed the mcwp-440-gate-extraction branch from eaae025 to 5ba7492 Compare May 4, 2026 09:01
@Qbandev Qbandev removed DO-NOT-MERGE Pull requests that should not be merged labels May 4, 2026
@Qbandev Qbandev requested review from Copilot and jvbriones May 4, 2026 09:49
@Qbandev Qbandev added no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed and removed no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels May 4, 2026

Copilot AI 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.

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-gate to evaluate needs results and write a step summary table.
  • Updated .github/workflows/ci.yml so 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.

Comment thread .github/actions/ci-status-gate/action.yml
Comment thread .github/actions/ci-status-gate/action.yml
@Qbandev Qbandev marked this pull request as ready for review May 4, 2026 10:28
@Qbandev Qbandev requested a review from a team as a code owner May 4, 2026 10:28
@github-actions

github-actions Bot commented May 5, 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: 92%
click to see 🤖 AI reasoning details

E2E Test Selection:
The two changed files are purely CI infrastructure changes:

  1. .github/actions/ci-status-gate/action.yml - A NEW composite GitHub Action that encapsulates the CI status gate logic (evaluating required job results, handling skips, failures, and cancellations). This is a new reusable action extracted from inline workflow logic.

  2. .github/workflows/ci.yml - Refactors the check-all-jobs-pass job to:

    • Remove the intermediate all-jobs-pass job
    • Directly depend on all required jobs
    • Delegate evaluation logic to the new composite action
    • Change condition from !cancelled() to always() && !cancelled()

These changes are a structural refactoring of CI pipeline gate logic only. They do not touch:

  • Any application source code
  • Any E2E test files or test infrastructure
  • Any controllers, components, or services
  • Any build configuration affecting the app

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:
These are pure CI infrastructure changes with no impact on app code, rendering, data loading, or any performance-sensitive paths. No performance tests are warranted.

View GitHub Actions results

@sonarqubecloud

sonarqubecloud Bot commented May 5, 2026

Copy link
Copy Markdown

@Qbandev Qbandev added Code Impact - Medium Average task code change that can relatively safely being applied to the codebase and removed Code Impact - Medium Average task code change that can relatively safely being applied to the codebase labels May 5, 2026
@Qbandev Qbandev added this pull request to the merge queue May 5, 2026
Merged via the queue into main with commit 4b756de May 5, 2026
63 of 65 checks passed
@Qbandev Qbandev deleted the mcwp-440-gate-extraction branch May 5, 2026 09:38
@github-actions github-actions Bot locked and limited conversation to collaborators May 5, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.77.0 Issue or pull request that will be included in release 7.77.0 label May 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.77.0 Issue or pull request that will be included in release 7.77.0 size-M team-dev-ops DevOps team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants