Skip to content

chore: Revert "fix: Zip iOS .app bundles for runway bucket"#29600

Merged
Cal-L merged 1 commit into
mainfrom
revert-29377-chore/zip-sim-build-for-runway
May 1, 2026
Merged

chore: Revert "fix: Zip iOS .app bundles for runway bucket"#29600
Cal-L merged 1 commit into
mainfrom
revert-29377-chore/zip-sim-build-for-runway

Conversation

@Cal-L

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

Copy link
Copy Markdown
Contributor

Reverts #29377

Shouldn't need double zip anymore since Runway should support .app bundles


Note

Medium Risk
Medium risk because it changes CI artifact packaging and paths for iOS simulator outputs, which could break downstream consumers or uploads if the expected zip naming/location differs.

Overview
Reverts the iOS simulator artifact workaround that double-zipped and staged .app bundles before upload, returning to a single .zip produced directly from the simulator .app and emitting that path via ios_simulator_path.

The build workflow is simplified by removing simulator upload staging/cleanup logic and loosening the upload step condition (dropping the redundant success() guard). The artifact renaming script also switches from execFileSync to execSync for find/cp/ditto invocations and removes repo-relative path conversion for simulator uploads.

Reviewed by Cursor Bugbot for commit 255c3e0. 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 30, 2026 23:26
@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.

@metamaskbotv2 metamaskbotv2 Bot added the team-mobile-platform Mobile Platform team label Apr 30, 2026
@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 30, 2026
@github-project-automation github-project-automation Bot moved this to Needs dev review in PR review queue Apr 30, 2026
@metamaskbotv2 metamaskbotv2 Bot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Apr 30, 2026
@Cal-L Cal-L enabled auto-merge April 30, 2026 23:27
@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 changes are purely CI/build infrastructure modifications with no impact on application code or test logic:

  1. .github/workflows/build.yml:

    • Removed success() condition from "Upload iOS simulator app" step — this means the artifact upload now runs regardless of whether previous steps succeeded (useful for debugging failed builds).
    • Removed the "Remove iOS simulator staging directory" step entirely, as the staging directory is no longer needed.
  2. scripts/rename-artifacts.js:

    • Switched from execFileSync to execSync with shell string interpolation (minor refactor).
    • Removed the double-zip logic for iOS simulator artifacts — previously the script created a double-zip (zip inside a zip) and staged it in ios-simulator-upload/ directory; now it simply creates a single zip and outputs that path directly.
    • Removed the toRepoRelative() helper function that was only needed for the staging directory approach.
    • Removed the staging directory creation/management code.

These are purely CI artifact packaging changes. No application source code, test infrastructure, controllers, navigation, or user-facing functionality is affected. No E2E tests need to run to validate these changes, and there is no performance impact.

Performance Test Selection:
No application code changes were made. These are purely CI build artifact packaging changes with no impact on app performance, rendering, or runtime behavior.

View GitHub Actions results

[dir, '-name', pattern, '-type', 'f'],
{ encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] },
).trim();
const output = execSync(`find "${dir}" -name "${pattern}" -type f 2>/dev/null || true`, {
['-c', '-k', '--sequesterRsrc', '--keepParent', oldArchive, archiveZip],
{ stdio: 'inherit' },
execSync(
`ditto -c -k --sequesterRsrc --keepParent "${oldArchive}" "${archiveZip}"`,

@cursor cursor Bot 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.

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

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 255c3e0. Configure here.

['-c', '-k', '--sequesterRsrc', '--keepParent', newApp, zipPath],
{ stdio: 'inherit' },
execSync(
`ditto -c -k --sequesterRsrc --keepParent "${newApp}" "${zipPath}"`,

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.

Reverting execFileSync to execSync introduces shell injection risk

Medium Severity

The revert switches cp and ditto calls from execFileSync (array-based, no shell) to execSync with template-literal string interpolation (spawns a shell). Even with double-quoting, shell metacharacters like $(...), backticks, or backslashes in interpolated values (environment, configuration env vars) can escape. These cp/ditto invocations don't need any shell features, so execFileSync with an argument array was the safer choice and its removal is an unintended side effect of the revert.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 255c3e0. Configure here.

@Cal-L Cal-L changed the title Revert "fix: Zip iOS .app bundles for runway bucket" chore: Revert "fix: Zip iOS .app bundles for runway bucket" Apr 30, 2026
@sonarqubecloud

Copy link
Copy Markdown

@Cal-L Cal-L added this pull request to the merge queue May 1, 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 May 1, 2026
Merged via the queue into main with commit 46018a0 May 1, 2026
104 of 107 checks passed
@Cal-L Cal-L deleted the revert-29377-chore/zip-sim-build-for-runway branch May 1, 2026 05:45
@github-actions github-actions Bot locked and limited conversation to collaborators May 1, 2026
@github-actions github-actions Bot removed the needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) label May 1, 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 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template 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.77.0 Issue or pull request that will be included in release 7.77.0 size-S team-mobile-platform Mobile Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants