Skip to content

Port the remaining three macOS jobs to the Bitrise ci-ios pipeline - #636

Open
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/macos-ci-4-bitrise-gatefrom
kieran-osgood/macos-ci-5-bitrise-remaining-jobs
Open

Port the remaining three macOS jobs to the Bitrise ci-ios pipeline#636
kieran-osgood-shopify wants to merge 1 commit into
kieran-osgood/macos-ci-4-bitrise-gatefrom
kieran-osgood/macos-ci-5-bitrise-remaining-jobs

Conversation

@kieran-osgood-shopify

@kieran-osgood-shopify kieran-osgood-shopify commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Part of the macOS CI speed-up
Epic
Issue

Completes the port started in the previous PR. ci-ios now covers all four slow
macOS jobs.

Change

e2e/config/ios_ci.yml now includes

  • swift-samples
  • react-native-build-ios
  • react-native-test-ios

Baselines to beat

Job n median p90 slowest step share
React Native / Run iOS Tests 11 13m19s 13m53s Run iOS tests 11m44s 88%
React Native / Build iOS Sample 11 11m59s 13m54s Build iOS sample 10m27s 87%
Swift / build-and-test-samples 11 6m38s 8m10s Run Tests 6m04s 91%

React Native pair total: 25m18s. Whole-PR CI wall clock: 15m18s.

🟡 Variance is wide across all four jobs.

Before you merge

Important

  • I've added tests to support my implementation
  • I have read and agree with the Contribution Guidelines
  • I have read and agree with the Code of Conduct
  • I've updated the relevant platform README (platforms/swift/README.md and/or platforms/android/README.md)

Releasing a new Swift version?
  • I have bumped the version in ShopifyCheckoutKit.podspec
  • I have bumped the version in platforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swift
  • I have updated the SwiftPM/CocoaPods version snippets in platforms/swift/README.md (major version only)
Releasing a new Embedded Checkout Protocol version?
  • I have bumped embeddedCheckoutProtocolAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api if the public API changed
Releasing a new Android version?
  • I have bumped checkoutKitAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated the Gradle/Maven version snippets in platforms/android/README.md

Tip

See the Contributing documentation for the full release process per platform.

@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-4-bitrise-gate branch from 5f14e09 to ade88b9 Compare August 13, 2026 09:22
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-5-bitrise-remaining-jobs branch from 30948c5 to 11000e2 Compare August 13, 2026 09:22
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-4-bitrise-gate branch from ade88b9 to f952221 Compare August 13, 2026 11:36
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-5-bitrise-remaining-jobs branch from 11000e2 to a581a2d Compare August 13, 2026 11:36
@kieran-osgood-shopify
kieran-osgood-shopify marked this pull request as ready for review August 14, 2026 12:28
@kieran-osgood-shopify
kieran-osgood-shopify requested a review from a team as a code owner August 14, 2026 12:28
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-4-bitrise-gate branch from f952221 to 4a0efcf Compare August 14, 2026 12:36
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-5-bitrise-remaining-jobs branch from a581a2d to 90a015d Compare August 14, 2026 12:36
Comment thread e2e/bitrise.yml
meta:
bitrise.io:
stack: *macos_stack
machine_type_id: g2.mac.4large

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.

4large seems reasonable for React Native, but would we get away with g2.mac.large for swift package and sample runs?

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

Left a question about machine size but looks good otherwise

@bitrise

bitrise Bot commented Aug 14, 2026

Copy link
Copy Markdown

Checkout Kit E2E results

Caution

E2E runs were skipped — 2 pipeline stages failed:

None of the 4 planned runs executed:

  • react-native-ios (ios)
  • react-native-android (android)
  • kotlin-android (android)
  • swift-ios (ios)

Pipeline build

@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-5-bitrise-remaining-jobs branch from 90a015d to 4cc6dfc Compare August 14, 2026 16:32
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-4-bitrise-gate branch from 4a0efcf to 1473d71 Compare August 14, 2026 16:32
Part of the macOS CI speed-up. Tracked on shop/issues-checkout-kit#1207, under shop/issues-checkout-kit#1202.

Completes the port started in the previous PR. `ci-ios` now covers all four slow
macOS jobs.

## Change

`e2e/config/ios_ci.yml` gains `swift-samples`, `react-native-build-ios` and
`react-native-test-ios`. The set-equality invariants from the previous PR then
force `e2e/bitrise.yml` to match, which it does: three `ci-ios-*` workflows,
three `run_if` blocks, three `share-pipeline-variable@1` entries, and three more
names in `ci-ios-report.depends_on`.

All three reuse the existing step bundles verbatim — `install-node-modules`,
`install-ruby-gems`, `install-cocoapods`, `bootstrap-mint`,
`create-ios-simulator`. Both `check_published_podfile_lock` guards are kept, each
in its own step **before** `pod install`, so a local-path lockfile is named
rather than surfacing as an opaque `--deployment` diff.

## Baselines to beat

| Job | n | median | p90 | slowest step | share |
| --- | --- | --- | --- | --- | --- |
| `React Native / Run iOS Tests` | 11 | 13m19s | 13m53s | `Run iOS tests` 11m44s | 88% |
| `React Native / Build iOS Sample` | 11 | 11m59s | 13m54s | `Build iOS sample` 10m27s | 87% |
| `Swift / build-and-test-samples` | 11 | 6m38s | 8m10s | `Run Tests` 6m04s | 91% |

React Native pair total: 25m18s. Whole-PR CI wall clock: 15m18s.

🟡 Variance is wide across all four jobs. Only the median over n ≥ 10 is worth
comparing.

## Selection, verified

| Change | Jobs selected |
| --- | --- |
| `platforms/swift/**` | `swift-package-tests`, `swift-samples` |
| `platforms/react-native/**` | `react-native-build-ios`, `react-native-test-ios` |
| `Package.swift` | all four |
| `README.md` | none — `CI_IOS_HAS_JOBS=false` |

`Package.swift` selecting all four mirrors `ci.yml:63-64` and `ci.yml:90-91`.

## Verification

- `shadowenv exec -- ./scripts/test_ruby` — 293 runs, 0 failures.
- `shadowenv exec -- bitrise validate --config=e2e/bitrise.yml` — valid.
- Negative control: removing one flag and one `run_if` block fails all three
  set-equality invariants.

## Decisions made without you

- **`swift-samples` secrets**: the samples only need a well-formed storefront
  configuration to compile, so the job exports placeholder values and calls
  `scripts/setup_storefront_env --skip-optional-prompts` directly. It does not
  call `e2e_configure_storefront`, which asserts the real secrets. Staying off
  them is what lets the job run on fork pull requests.
- **`react-native-test-ios` pods**: not the `install-cocoapods` bundle — that
  one owns the sample app's Pods tree, and `test_ios` runs `pod install` for the
  integration app itself. An inline `restore-cache` / `save-cache` pair carries
  `test/rct-integration-app/Pods` instead. The plan called for a step bundle;
  inline is used because a bundle cannot wrap a step that lives in the workflow,
  and the paired-cache invariant added in the next PR would flag a split pair.
- **`bootstrap-mint` in `react-native-test-ios`**: `test_ios` calls
  `generate_xcode_projects`, which needs xcodegen.
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-4-bitrise-gate branch from 1473d71 to 00bc5fd Compare August 17, 2026 15:50
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/macos-ci-5-bitrise-remaining-jobs branch from 4cc6dfc to 018c4f8 Compare August 17, 2026 15:50
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.

2 participants