Skip to content

[Phase 2] Add Bitrise E2E pipeline skeleton#357

Merged
kieran-osgood-shopify merged 2 commits into
mainfrom
kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton
Jul 8, 2026
Merged

[Phase 2] Add Bitrise E2E pipeline skeleton#357
kieran-osgood-shopify merged 2 commits into
mainfrom
kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton

Conversation

@kieran-osgood-shopify

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

Copy link
Copy Markdown
Contributor

Stack Context

This is Phase 2 of the BrowserStack Maestro E2E stack for Checkout Kit, stacked on the Phase 1 matrix/smoke foundation.

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

What?

Adds the Bitrise E2E pipeline skeleton without real BrowserStack execution:

  • e2e/bitrise.yml with an e2e graph pipeline
  • split package/build/run/report workflow shape
  • placeholder RN iOS and RN Android artifact workflows
  • placeholder matrix-row run fanout workflow
  • placeholder aggregate report workflow
  • Bitrise Pipeline intermediate file sharing placeholders
  • Bitrise setup docs at e2e/BITRISE.md
  • count helper on the run plan CLI for E2E_BROWSERSTACK_RUN_PLAN_COUNT
  • Bitrise CLI installed by dev up via dev.yml
  • Shopify Bitrise compatibility defaults:
    • no activate-build-cache-for-xcode or activate-build-cache-for-gradle add-on steps
    • Ruby pinned via the Bitrise tools: directive (ruby: 3.3.6, a version pre-installed on the stack) so runs do not depend on the repo .ruby-version

Why?

We want the build/test/report topology and matrix fanout model in place before introducing real app artifacts or BrowserStack API calls.

This keeps Phase 2 focused on CI shape, artifact handoff contracts, caching placeholders, Bitrise app setup documentation, local Bitrise config validation, and compatibility with Shopify's Bitrise environment. The Bitrise config lives under e2e/ because it is scoped to the E2E pipeline.

Validation

shadowenv exec -- ruby e2e/scripts/e2e_matrix_to_browserstack_run_plan validate
shadowenv exec -- ruby e2e/scripts/e2e_matrix_to_browserstack_run_plan count
shadowenv exec -- bitrise validate -c e2e/bitrise.yml

shadowenv exec -- /opt/dev/bin/dev up installed the Bitrise CLI successfully, then failed later during workspace setup because this worktree does not have storefront .env/Swift sample generated config. bitrise version returned 2.39.2 afterwards and bitrise validate -c e2e/bitrise.yml passed.

@github-actions github-actions Bot added the #gsd:50662 Rebase Checkout Kit on UCP label Jun 29, 2026
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch 2 times, most recently from a5d1615 to 6040519 Compare June 29, 2026 16:38
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 71e91c0 to 285bb9c Compare June 29, 2026 16:38
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch 8 times, most recently from 69c152c to e4d0e83 Compare July 1, 2026 14:57
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 285bb9c to 78eba95 Compare July 1, 2026 15:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from e4d0e83 to 19ffe1b Compare July 1, 2026 15:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 78eba95 to b630f4e Compare July 2, 2026 11:49
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch 3 times, most recently from f2b7aaa to 54d0739 Compare July 2, 2026 13:03
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from b630f4e to 1455147 Compare July 2, 2026 13:03
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch 3 times, most recently from 7d8a857 to 3bad4af Compare July 2, 2026 15:35
@kieran-osgood-shopify kieran-osgood-shopify requested a review from a team as a code owner July 6, 2026 16:09
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch 3 times, most recently from 989ae72 to 4fed0e9 Compare July 7, 2026 13:10

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

looks good, couple of minor docs qs.

Comment thread e2e/BITRISE.md Outdated
Comment thread e2e/BITRISE.md Outdated
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from 4fed0e9 to b65817b Compare July 7, 2026 16:13
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 26d5c48 to 4f48aa5 Compare July 7, 2026 16:13
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from b65817b to 84a8477 Compare July 8, 2026 10:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 4f48aa5 to 155c337 Compare July 8, 2026 10:11
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from 84a8477 to c2c28c7 Compare July 8, 2026 11:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 155c337 to b733667 Compare July 8, 2026 11:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from c2c28c7 to 2ce8232 Compare July 8, 2026 15:01
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-1-matrix branch from 410c55c to 6ab2050 Compare July 8, 2026 15:08
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from 2ce8232 to 000e040 Compare July 8, 2026 15:08
Comment thread e2e/bitrise.yml

app:
envs:
- E2E_STRICT: "false"

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.

The PR body says this config sets RBENV_VERSION=system, but it is missing here. Since the repo has its own .ruby-version and this Bitrise config pins another Ruby version, scripts from the checkout can still ask rbenv for the checkout version before the run plan is produced.

Could we restore the app-level override?

Suggested change
- E2E_STRICT: "false"
- RBENV_VERSION: system
- E2E_STRICT: "false"

@kieran-osgood-shopify kieran-osgood-shopify Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching that, the PR body got stale as we're no longer using rbenv (we rely now on the tools version which uses asdf

tools:
  ruby: 3.3.6
  nodejs: 22.14.0

I have a ticket here: https://github.com/orgs/shop/projects/1142/views/1?sliceBy%5Bvalue%5D=kieran-osgood-shopify&pane=issue&itemId=4837082758&issue=shop%7Cissues-checkout-kit%7C1136 to resolve the ruby inconsistencies holistically across the repo as we currently have at least 3 .ruby-version files

kieran-osgood-shopify commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Merge activity

  • Jul 8, 3:12 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jul 8, 3:14 PM UTC: Graphite rebased this pull request as part of a merge.
  • Jul 8, 4:40 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jul 8, 4:40 PM UTC: @kieran-osgood-shopify merged this pull request with Graphite.

@kieran-osgood-shopify kieran-osgood-shopify changed the base branch from kieran-osgood/e2e-browserstack/phase-1-matrix to graphite-base/357 July 8, 2026 15:12
@kieran-osgood-shopify kieran-osgood-shopify changed the base branch from graphite-base/357 to main July 8, 2026 15:13
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from 000e040 to dac51b2 Compare July 8, 2026 15:13
Comment thread e2e/bitrise.yml Outdated
- content: |-
set -euo pipefail
source e2e/scripts/bitrise_ci_helpers
run_index="${BITRISE_IO_PARALLEL_INDEX:-0}"

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.

Defaulting a missing BITRISE_IO_PARALLEL_INDEX to 0 could make every parallel copy run the first row if the env var is not passed through.

Could we require it so fan-out issues fail visibly?

Suggested change
run_index="${BITRISE_IO_PARALLEL_INDEX:-0}"
: "${BITRISE_IO_PARALLEL_INDEX:?BITRISE_IO_PARALLEL_INDEX is required for the parallel e2e-execute-browserstack-run workflow.}"
run_index="$BITRISE_IO_PARALLEL_INDEX"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call - Found another spot in phase 5 branch that does the same so ill make the same change there too to

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch from dac51b2 to c89a9da Compare July 8, 2026 16:18
@kieran-osgood-shopify kieran-osgood-shopify merged commit 29fc58c into main Jul 8, 2026
25 checks passed
@kieran-osgood-shopify kieran-osgood-shopify deleted the kieran-osgood/e2e-browserstack/phase-2-bitrise-skeleton branch July 8, 2026 16:40
@kieran-osgood-shopify kieran-osgood-shopify changed the title Add Bitrise E2E pipeline skeleton [Phase 2] Add Bitrise E2E pipeline skeleton Jul 9, 2026
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