Skip to content

chore: Update main-dev for expo and release build configurations#29572

Merged
Cal-L merged 7 commits into
mainfrom
chore/MCWP-561-main-dev-release
May 1, 2026
Merged

chore: Update main-dev for expo and release build configurations#29572
Cal-L merged 7 commits into
mainfrom
chore/MCWP-561-main-dev-release

Conversation

@Cal-L

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

Copy link
Copy Markdown
Contributor

Description

This PR updates build variants:

  • Create main-dev-expo for producing Expo debug dev builds (.app, .ipa, .apk, test .apk)
  • Update main-dev for producing release dev builds for installation via side loading

Slack thread - https://consensys.slack.com/archives/C02U025CVU4/p1776795191936139

Changelog

CHANGELOG entry:

Related issues

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

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

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
Moderate risk because it changes CI build selection and iOS signing/export behavior (including overriding signing settings for Release archives), which could break artifact generation or produce incorrectly signed builds.

Overview
Separates dev build configurations by introducing main-dev-expo (Debug Expo dev builds that produce simulator + device iOS artifacts and Android APK + test APK) while repurposing main-dev as a dev release build intended for sideloading.

Updates the reusable build.yml workflow to support an optional script_name override from builds.yml, so different build configs can reuse the same underlying yarn build script. Adjusts scripts/build.sh iOS packaging to use a new PROFILE flag for selecting export options and to allow development signing overrides when creating a Release archive.

Reviewed by Cursor Bugbot for commit dc86270. 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 17:06
@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
Comment thread builds.yml
Comment thread scripts/build.sh
else
fi

if [ "$IS_DEVICE_BUILD" = "true" ] || [ -z "$IS_SIM_BUILD" ]; then

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.

Device build fallback condition narrower than original

Low Severity

The device build fallback changed from an else (triggered for any IS_SIM_BUILD value that isn't "true") to [ -z "$IS_SIM_BUILD" ] (triggered only when IS_SIM_BUILD is empty/unset). If IS_SIM_BUILD is ever set to a non-empty value other than "true" (e.g. "false"), and IS_DEVICE_BUILD is also not "true", the new code produces no iOS build at all — neither simulator nor device. The old code would correctly fall through to a device build via the else branch. Using [ "$IS_SIM_BUILD" != "true" ] instead of [ -z "$IS_SIM_BUILD" ] would preserve the original semantics.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8690d5d. Configure here.

Comment thread scripts/build.sh Outdated
Comment thread scripts/build.sh Outdated
@github-actions

github-actions Bot commented May 1, 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:
All 4 changed files are CI/build infrastructure files with no impact on application source code, E2E test logic, or test infrastructure:

  1. .github/workflows/build.yml: Adds main-dev-expo as a valid build name and introduces a script_name output to allow builds.yml to override the yarn script name used during builds. This is purely a CI pipeline change.

  2. .github/workflows/expo-dev-build.yml: Renames the Expo dev build from main-dev to main-dev-expo to use the new dedicated configuration. No test execution changes.

  3. builds.yml: Refactors the main-dev build into a proper dev release build (for sideloading), adds a new main-dev-expo build config with script_name: main-dev override, and adds PROFILE: 'development' env var. These are build configuration changes only.

  4. scripts/build.sh: Refactors iOS binary generation to use a PROFILE env var instead of configuration to select export options plist, separates simulator and device build steps, and adds signing override support for Release archives with development profile. This is a build script change with no runtime app code impact.

None of these changes affect:

  • Application source code or runtime behavior
  • E2E test files, fixtures, or page objects
  • Test framework infrastructure
  • Any user-facing features or flows

Since these are purely build/CI infrastructure changes that don't affect the app's behavior or test infrastructure, no E2E test tags need to be run.

Performance Test Selection:
No performance-sensitive code was changed. All modifications are to CI/build infrastructure (GitHub Actions workflows, build configuration YAML, and build shell script). These changes have no impact on app rendering, data loading, state management, or any other performance-sensitive areas.

View GitHub Actions results

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

There are 3 total unresolved issues (including 2 from previous reviews).

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 dc86270. Configure here.

Comment thread scripts/build.sh
@sonarqubecloud

sonarqubecloud Bot commented May 1, 2026

Copy link
Copy Markdown

@Cal-L Cal-L enabled auto-merge May 1, 2026 21:18
@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 9b73aff May 1, 2026
75 of 78 checks passed
@Cal-L Cal-L deleted the chore/MCWP-561-main-dev-release branch May 1, 2026 21:37
@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

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.

2 participants