Skip to content

[Phase 4] Build React Native iOS E2E IPA artifact#361

Merged
kieran-osgood-shopify merged 2 commits into
mainfrom
kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact
Jul 9, 2026
Merged

[Phase 4] Build React Native iOS E2E IPA artifact#361
kieran-osgood-shopify merged 2 commits into
mainfrom
kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact

Conversation

@kieran-osgood-shopify

@kieran-osgood-shopify kieran-osgood-shopify commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Stack Context

This is Phase 4 of the BrowserStack Maestro E2E stack for Checkout Kit, stacked on the RN Android artifact workflow.

Parent issue: https://github.com/shop/issues-checkout-kit/issues/1098
Epic: https://github.com/shop/issues-checkout-kit/issues/1084

What?

Replaces the React Native iOS placeholder artifact workflow with a signed device archive/export path:

  • installs JS dependencies with pnpm
  • prepares sanitized sample app configuration via scripts/setup_storefront_env
  • installs CocoaPods dependencies
  • installs Bitrise certificates/profiles
  • archives the RN iOS sample with xcodebuild archive for iphoneos
  • exports an .ipa via xcodebuild -exportArchive
  • exports E2E_REACT_NATIVE_IOS_APP_PATH
  • documents iOS signing/export setup
  • adds tests asserting the iOS workflow does not use local native SDK overrides

Why?

BrowserStack App Automate requires an .ipa for iOS real-device Maestro execution. RN E2E should validate the released native CocoaPods artifacts used by the React Native sample/module configuration, not local in-repo Swift SDK sources.

Validation

shadowenv exec -- ruby e2e/test/bitrise_pipeline_test.rb
shadowenv exec -- ruby e2e/test/e2e_matrix_test.rb
shadowenv exec -- ruby e2e/scripts/e2e_matrix validate
shadowenv exec -- bitrise validate -c e2e/bitrise.yml
shadowenv exec -- ruby -e 'require "yaml"; YAML.safe_load_file("e2e/bitrise.yml"); puts "e2e bitrise yaml parsed"'

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from 2093783 to 8d428c0 Compare June 29, 2026 16:04
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from 47a512b to 61cf06e Compare June 29, 2026 16:38
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch 2 times, most recently from 455ab75 to b1b2dfd Compare June 29, 2026 17:01
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from 883a195 to 3d0b744 Compare June 29, 2026 17:33
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch 2 times, most recently from 68ea79c to 12fb9f6 Compare June 29, 2026 17:53
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from b1b75a8 to 31ed453 Compare July 1, 2026 09:54
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch 2 times, most recently from 3dcb803 to e2d2b87 Compare July 1, 2026 10:07
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 31ed453 to 3cd4001 Compare July 1, 2026 10:07
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from e2d2b87 to e5a9bbe Compare July 1, 2026 10:40
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from 97d9280 to ffb6424 Compare July 1, 2026 11:26
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from e5a9bbe to 17f737e Compare July 1, 2026 11:26
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 4 times, most recently from 3d95d77 to 5e92742 Compare July 1, 2026 14:57
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 6d6a642 to 9feda34 Compare July 6, 2026 15:16
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from 3ef18ef to 7c78f0e Compare July 6, 2026 15:16
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 9feda34 to a842383 Compare July 6, 2026 16:27
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from 7c78f0e to 293b136 Compare July 6, 2026 16:27
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from e534ccd to daf0413 Compare July 6, 2026 17:01
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from 293b136 to 17886cc Compare July 6, 2026 17:01
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from daf0413 to d32656c Compare July 7, 2026 09:53
@kieran-osgood-shopify kieran-osgood-shopify marked this pull request as ready for review July 7, 2026 09:53
@kieran-osgood-shopify kieran-osgood-shopify requested a review from a team as a code owner July 7, 2026 09:53
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch 2 times, most recently from 47daa4f to ccbf8f3 Compare July 7, 2026 13:03
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch 2 times, most recently from 05ea674 to 349dc1b Compare July 7, 2026 13:10
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from ccbf8f3 to 345c62f Compare July 7, 2026 13:10
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from 349dc1b to cd2d095 Compare July 7, 2026 16:13
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 345c62f to a744417 Compare July 7, 2026 16:13
Comment thread e2e/bitrise.yml Outdated
title: Create React Native iOS artifact placeholder
title: Build React Native iOS IPA artifact
timeout: 5400
no_output_timeout: 5400

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.

should we make these different?

We could keep timeout high, but drop no_output to 1800 or something to detect a hang?

Comment thread e2e/bitrise.yml Outdated
- restore-cache@3:
inputs:
- key: &rn_ruby_gems_cache_key |-
rn-ruby-gems-{{ .OS }}-{{ .Arch }}-ruby-3.4.8-{{ checksum "platforms/react-native/sample/Gemfile.lock" }}

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.

Is there a {{ .RubyVersion }} or worth extracting a variable...

Actually is it needed at all? The Gemfile.lock includes Ruby version, so a change would invalidate the cache when the ruby version changes without it

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch from cd2d095 to ba7892e Compare July 8, 2026 10:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from a744417 to 32ba8de Compare July 8, 2026 10:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 32ba8de to b1d0394 Compare July 8, 2026 11:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-3-rn-android-artifact branch 2 times, most recently from 3b48186 to f6a559a Compare July 8, 2026 15:01
Assisted-By: devx/6c1e3ad5-96c8-4972-b087-da7ff7b195c3
Assisted-By: devx/9ae89f69-61a5-46e3-8faf-006d105b0cdd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50662 Rebase Checkout Kit on UCP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants