Skip to content

Run BrowserStack Maestro from E2E matrix rows#362

Draft
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifactfrom
kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro
Draft

Run BrowserStack Maestro from E2E matrix rows#362
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifactfrom
kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro

Conversation

@kieran-osgood-shopify

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

Copy link
Copy Markdown
Contributor

Stack Context

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

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

What?

Adds real BrowserStack Maestro execution from expanded E2E matrix rows:

  • packages the Maestro suite zip with a single parent folder
  • resolves BrowserStack devices dynamically from selectors like ios:phone:latest
  • supports exact device overrides for repro/debug
  • uploads app artifacts and Maestro suite zip to BrowserStack
  • starts platform-specific BrowserStack Maestro builds
  • polls build status and fetches session details
  • writes raw and normalized JSON result artifacts
  • wires the Bitrise run workflow to call the BrowserStack runner
  • documents BrowserStack secrets and non-sensitive Maestro env values

Why?

This is the first PR that connects the pipeline to BrowserStack App Automate. It keeps execution matrix-driven so future app targets, OS tracks, and suites can fan out without changing the pipeline topology.

Validation

shadowenv exec -- ruby e2e/test/maestro_suite_package_test.rb
shadowenv exec -- ruby e2e/test/browserstack_device_resolver_test.rb
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"'
shadowenv exec -- ruby -c e2e/scripts/browserstack_maestro
shadowenv exec -- bash -n e2e/scripts/package_maestro_suite

kieran-osgood-shopify commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from 1646c03 to d99cf73 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 from 362c7a3 to 47a512b Compare June 29, 2026 16:04
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from d99cf73 to eebe02d Compare June 29, 2026 16:38
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 47a512b to 61cf06e Compare June 29, 2026 16:38
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from eebe02d to 8bc166b 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-5-browserstack-maestro branch 2 times, most recently from 07c670c to ffa1eee 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-5-browserstack-maestro branch 2 times, most recently from 31464ab to e3e8eba 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 2 times, most recently from 3cd4001 to 97d9280 Compare July 1, 2026 10:40
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from e3e8eba to 69ba295 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 from 97d9280 to ffb6424 Compare July 1, 2026 11:26
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from 69ba295 to 6484336 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 from ffb6424 to abf1671 Compare July 1, 2026 11:43
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from 6484336 to 05c783c Compare July 1, 2026 11:43
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from abf1671 to b19f86c Compare July 1, 2026 13:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from 05c783c to 5153e7b Compare July 1, 2026 13:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from b19f86c to 3d95d77 Compare July 1, 2026 13:54
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch 4 times, most recently from 45bc8a3 to fa7a218 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 3d95d77 to 5e92742 Compare July 1, 2026 14:57
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from fa7a218 to 8fe8410 Compare July 1, 2026 15:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 5e92742 to 35f6b16 Compare July 1, 2026 15:11
Assisted-By: devx/6c1e3ad5-96c8-4972-b087-da7ff7b195c3
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-4-rn-ios-artifact branch from 35f6b16 to f12128c Compare July 1, 2026 17:12
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-5-browserstack-maestro branch from 8fe8410 to b5723fc Compare July 1, 2026 17:12
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.

1 participant