Skip to content

fix: Zip iOS .app bundles for runway bucket#29377

Merged
Cal-L merged 4 commits into
mainfrom
chore/zip-sim-build-for-runway
Apr 27, 2026
Merged

fix: Zip iOS .app bundles for runway bucket#29377
Cal-L merged 4 commits into
mainfrom
chore/zip-sim-build-for-runway

Conversation

@Cal-L

@Cal-L Cal-L commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Description

In the past, we've experienced issues where Runway buckets would not pick up .app bundles. Our fix at the time was to zip the bundle since Runway recognizes zipped files. This change applies the zipped solution to Expo Dev Builds for iOS simulator builds.

Expo Dev Build - https://github.com/MetaMask/metamask-mobile/actions/runs/25011093158

Changelog

CHANGELOG entry:

Related issues

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

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

image

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

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

Medium Risk
Medium risk because it changes CI artifact packaging and upload paths for iOS simulator builds, which could break build outputs or downstream consumers if the new double-zip/staging behavior is misaligned.

Overview
iOS simulator build artifacts are now packaged as a double-zipped file and, in CI, staged under ios-simulator-upload/ so actions/upload-artifact uploads a single .zip file instead of treating the .app bundle as a directory.

The artifact renaming script switches from shell-string execSync calls to execFileSync for find, cp, and ditto, and emits repo-relative paths for GitHub Actions outputs. The build workflow also tightens the upload condition to success() and cleans up the simulator staging directory after upload.

Reviewed by Cursor Bugbot for commit 666b47b. Bugbot is set up for automated code reviews on this repo. Configure here.

@Cal-L Cal-L requested a review from a team as a code owner April 27, 2026 17:18
@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.

@Cal-L Cal-L added No QA Needed Apply this label when your PR does not need any QA effort. needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed no changelog required No changelog entry is required for this change labels Apr 27, 2026
@github-project-automation github-project-automation Bot moved this to Needs dev review in PR review queue Apr 27, 2026
@metamaskbotv2 metamaskbotv2 Bot added the team-mobile-platform Mobile Platform team label Apr 27, 2026
@Cal-L Cal-L changed the title Chore/zip sim build for runway fix: Zip iOS .app bundles for runway bucket Apr 27, 2026
weitingsun
weitingsun previously approved these changes Apr 27, 2026
@github-project-automation github-project-automation Bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Apr 27, 2026
Comment thread scripts/rename-artifacts.js Fixed
@github-actions

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: 95%
click to see 🤖 AI reasoning details

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

  1. .github/workflows/build.yml: Minor improvements to the iOS artifact upload step:

    • Added success() guard to prevent uploading artifacts on build failure
    • Added cleanup step to remove the iOS simulator staging directory after upload
    • These are workflow correctness fixes with no impact on app code or test behavior
  2. scripts/rename-artifacts.js: Build artifact packaging improvements:

    • Replaced execSync with execFileSync (security hardening, avoids shell injection)
    • Added double-zip mechanism for iOS simulator .app bundles so upload-artifact treats them as files rather than directories
    • Added toRepoRelative() helper for proper CI path resolution
    • Added staging directory logic for CI uploads

Neither file touches any app source code, React Native components, controllers, navigation, test fixtures, or E2E test infrastructure. These changes only affect how build artifacts are renamed, packaged, and uploaded in GitHub Actions CI. There is no user-facing behavior change, no test framework change, and no risk to any E2E test flows. No E2E test tags are warranted.

Performance Test Selection:
The changes are purely CI/build artifact handling (rename-artifacts.js and build.yml). No app code, rendering, state management, or runtime behavior is affected. Performance tests are not warranted.

View GitHub Actions results

@sonarqubecloud

Copy link
Copy Markdown

@Cal-L Cal-L added this pull request to the merge queue Apr 27, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Apr 27, 2026
@Cal-L Cal-L merged commit 3ba1e2d into main Apr 27, 2026
110 of 117 checks passed
@Cal-L Cal-L deleted the chore/zip-sim-build-for-runway branch April 27, 2026 19:20
@github-project-automation github-project-automation Bot moved this from Review finalised - Ready to be merged to Merged, Closed or Archived in PR review queue Apr 27, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 27, 2026
@github-actions github-actions Bot removed the needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) label Apr 27, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.76.0 Issue or pull request that will be included in release 7.76.0 label Apr 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no changelog required No changelog entry is required for this change No QA Needed Apply this label when your PR does not need any QA effort. no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.76.0 Issue or pull request that will be included in release 7.76.0 size-S team-mobile-platform Mobile Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants