Skip to content

chore: separate setup dependencies from EAS push job#24916

Merged
weitingsun merged 12 commits into
mainfrom
chore/separate-setup-dependencies-from-eas-job
Jan 21, 2026
Merged

chore: separate setup dependencies from EAS push job#24916
weitingsun merged 12 commits into
mainfrom
chore/separate-setup-dependencies-from-eas-job

Conversation

@weitingsun
Copy link
Copy Markdown
Contributor

@weitingsun weitingsun commented Jan 19, 2026

Description

In this PR, we don't run yarn install in the EAS job. Instead we set up dependencies in a different job and attach it when we do eas push.

Workflow test: https://github.com/MetaMask/metamask-mobile/actions/runs/21225548771

Changelog

CHANGELOG entry: Added setup-dependencies to push OTA update workflow

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/MCWP-265

Manual testing steps

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

Before

After

Pre-merge author checklist

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.

Note

Separates dependency setup from the EAS update workflow and switches to artifact-based node_modules reuse with compatibility checks.

  • Introduces reusable workflow setup-node-modules.yml to install deps, run project setup, verify artifacts, and upload node_modules (versioned by Node/OS)
  • Updates push-eas-update.yml to consume prebuilt artifacts for both target and base refs, generate fingerprints without reinstalling, and use artifacts in the push step
  • Adds composite actions: validate-artifact-compatibility (ensures Node/OS match) and restore-node-modules-permissions (fixes executable bits) with verification steps
  • Adjusts approval to use release-team, improves base_branch input description, and updates CODEOWNERS to include the new workflow

Written by Cursor Bugbot for commit ae5bd7c. This will update automatically on new commits. Configure here.

@weitingsun weitingsun requested a review from a team as a code owner January 19, 2026 23:37
@github-actions
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.

@metamaskbot metamaskbot added the team-mobile-platform Mobile Platform team label Jan 19, 2026
cursor[bot]

This comment was marked as outdated.

Comment thread .github/workflows/push-eas-update.yml Outdated
Comment thread .github/workflows/push-eas-update.yml Outdated
Comment thread .github/workflows/setup-node-modules.yml
description: 'Name of the artifact to upload'
required: false
type: string
default: 'node-modules'
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.

Also we can change the name of the node modules artifcact to include the node version and the OS name. We should pick those from the environment itself.

That way we can check it on the push-eas-update workflow if those are the same. That would prevent any undesired native (node native) behavior from happening

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is done below when we do name: Set artifact name with node version and OS

cursor[bot]

This comment was marked as outdated.

@weitingsun weitingsun requested a review from tommasini January 20, 2026 19:33
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
Comment thread .github/workflows/push-eas-update.yml
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 95%
click to see 🤖 AI reasoning details

All changes in this PR are purely CI/CD infrastructure changes related to GitHub Actions workflows:

  1. CODEOWNERS: Simple ownership assignment for a workflow file
  2. restore-node-modules-permissions/action.yml: New composite action for restoring file permissions after artifact download
  3. validate-artifact-compatibility/action.yml: New composite action for validating Node version and OS compatibility
  4. push-eas-update.yml: Refactored EAS update workflow to use reusable workflows and artifact caching instead of inline dependency installation
  5. setup-node-modules.yml: New reusable workflow for setting up and caching node_modules

These changes:

  • Do NOT modify any application code
  • Do NOT modify any E2E test code or infrastructure
  • Do NOT affect any user-facing functionality
  • Are isolated to the EAS (Expo Application Services) update workflow which is separate from the Detox E2E testing pipeline

The changes optimize CI/CD by caching node_modules artifacts and validating compatibility, but have zero impact on the mobile application behavior or E2E tests.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@sethkfman sethkfman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-project-automation github-project-automation Bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Jan 21, 2026
@weitingsun weitingsun enabled auto-merge January 21, 2026 23:14
@weitingsun weitingsun added this pull request to the merge queue Jan 21, 2026
Merged via the queue into main with commit 031b167 Jan 21, 2026
86 of 89 checks passed
@weitingsun weitingsun deleted the chore/separate-setup-dependencies-from-eas-job branch January 21, 2026 23:34
@github-actions github-actions Bot locked and limited conversation to collaborators Jan 21, 2026
@metamaskbot metamaskbot added the release-7.63.0 Issue or pull request that will be included in release 7.63.0 label Jan 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.63.0 Issue or pull request that will be included in release 7.63.0 size-M team-mobile-platform Mobile Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants