[Phase 2] Add Bitrise E2E pipeline skeleton#357
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
a5d1615 to
6040519
Compare
71e91c0 to
285bb9c
Compare
69c152c to
e4d0e83
Compare
285bb9c to
78eba95
Compare
e4d0e83 to
19ffe1b
Compare
78eba95 to
b630f4e
Compare
f2b7aaa to
54d0739
Compare
b630f4e to
1455147
Compare
7d8a857 to
3bad4af
Compare
989ae72 to
4fed0e9
Compare
kiftio
left a comment
There was a problem hiding this comment.
looks good, couple of minor docs qs.
4fed0e9 to
b65817b
Compare
26d5c48 to
4f48aa5
Compare
b65817b to
84a8477
Compare
4f48aa5 to
155c337
Compare
84a8477 to
c2c28c7
Compare
155c337 to
b733667
Compare
c2c28c7 to
2ce8232
Compare
410c55c to
6ab2050
Compare
2ce8232 to
000e040
Compare
|
|
||
| app: | ||
| envs: | ||
| - E2E_STRICT: "false" |
There was a problem hiding this comment.
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?
| - E2E_STRICT: "false" | |
| - RBENV_VERSION: system | |
| - E2E_STRICT: "false" |
There was a problem hiding this comment.
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.0I 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
Merge activity
|
000e040 to
dac51b2
Compare
| - content: |- | ||
| set -euo pipefail | ||
| source e2e/scripts/bitrise_ci_helpers | ||
| run_index="${BITRISE_IO_PARALLEL_INDEX:-0}" |
There was a problem hiding this comment.
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?
| 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" |
There was a problem hiding this comment.
Good call - Found another spot in phase 5 branch that does the same so ill make the same change there too to
Assisted-By: devx/9ae89f69-61a5-46e3-8faf-006d105b0cdd
dac51b2 to
c89a9da
Compare

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.ymlwith ane2egraph pipelinee2e/BITRISE.mdcounthelper on the run plan CLI forE2E_BROWSERSTACK_RUN_PLAN_COUNTdev upviadev.ymlactivate-build-cache-for-xcodeoractivate-build-cache-for-gradleadd-on stepstools:directive (ruby: 3.3.6, a version pre-installed on the stack) so runs do not depend on the repo.ruby-versionWhy?
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 -- /opt/dev/bin/dev upinstalled the Bitrise CLI successfully, then failed later during workspace setup because this worktree does not have storefront.env/Swift sample generated config.bitrise versionreturned2.39.2afterwards andbitrise validate -c e2e/bitrise.ymlpassed.