Skip to content

[Tophat] Add Tophat integration for Checkout Kit React Native builds - #401

Merged
kieran-osgood-shopify merged 4 commits into
mainfrom
kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds
Jul 16, 2026
Merged

[Tophat] Add Tophat integration for Checkout Kit React Native builds#401
kieran-osgood-shopify merged 4 commits into
mainfrom
kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds

Conversation

@kieran-osgood-shopify

@kieran-osgood-shopify kieran-osgood-shopify commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

What changes are you making?

Adding a dev tophat command.

dev tophat streamlines the download and installation of a release build (android / swift / react-native) from a PR onto an emulator/simulator.
It's built upon the foundations of https://github.com/Shopify/tophat - which handles the install and bitrise artifact downloading. Selecting the device can be done through tophats menu bar.

dev tophat builds upon fzf to add interactive fuzzy finding to argument selection across all the fields available (author / pr link / pr title)
image.png

How does it work

The interface of tophat is simplified into an interactive experience, where each argument is optional and launches into an interactive fzf picker if not supplied, the github urls are pulled from the gh cli
dev tophat
dev tophat <pr-number|pr-url>
dev tophat <pr-number|pr-url> <react-native-ios|react-native-android|ios|android>

Demo

Screen Recording 2026-07-03 at 14.34.02.mov (uploaded via Graphite)

dev tophat defaults to a currently open device, if no device is available it'll prompt you for a device
image

Auth failure behaviour

In the case of a bitrise failure the prompt is interactive here too and sends the user to the page to create an access token, waiting for the return before continuing
image.png

How to test

Try out each of the commands - right now only PR 401 will have artifacts to use

dev tophat
dev tophat <pr-number|pr-url>
dev tophat <pr-number|pr-url> <react-native-ios|react-native-android|ios|android>


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.

@bitrise

bitrise Bot commented Jul 3, 2026

Copy link
Copy Markdown

Install this build

Open Tophat, select your target device, then click Install. Links open on the Mac running Tophat.

SDK Install
React Native Install with Tophat

Checkout Kit E2E results

Status Suite Target Platform OS version tag Device
tests/shared/launch-smoke.yaml react-native ios latest iPhone 15
iOS 27 Beta
tests/shared/launch-smoke.yaml react-native android latest Google Pixel 9
Android 17.0
tests/shared/launch-smoke.yaml kotlin android latest Google Pixel 9
Android 17.0
tests/shared/launch-smoke.yaml swift ios latest iPhone 15
iOS 27 Beta

@bitrise

bitrise Bot commented Jul 3, 2026

Copy link
Copy Markdown

🤖 Bitrise Build Report > Checkout Kit E2E > e2e > #58: ✅ SUCCESS

  • Duration: 8m 47s
  • Workflows: 6 total / 6 executed / 0 aborted / 0 skipped / 0 failed / 6 successful

@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 98c8a2e to 8ce0b60 Compare July 6, 2026 08:33
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from e13cfb3 to 242f5b1 Compare July 6, 2026 08:33
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 8ce0b60 to 7e62db6 Compare July 6, 2026 11:18
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 242f5b1 to 8eeecfb Compare July 6, 2026 11:18

Copy link
Copy Markdown
Contributor Author

^I have disabled these bitrise build report comments so its only the one we manually post above in future

@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 8eeecfb to d551185 Compare July 6, 2026 12:33
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch 2 times, most recently from f214365 to 8570f64 Compare July 6, 2026 15:16
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch 5 times, most recently from a628d44 to 01a98e3 Compare July 6, 2026 16:22
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 8570f64 to 9d963fc Compare July 6, 2026 16:27
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 01a98e3 to 50c8284 Compare July 6, 2026 16:27
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 9d963fc to bf49ea7 Compare July 6, 2026 16:36
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 50c8284 to 917a516 Compare July 6, 2026 16:36
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from bf49ea7 to 9ca44dd Compare July 6, 2026 17:01
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 917a516 to 03221cb Compare July 6, 2026 17:01
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 397f872 to cb00a2d Compare July 10, 2026 17:02
@kieran-osgood-shopify
kieran-osgood-shopify changed the base branch from kieran-osgood/e2e-browserstack/phase-7-soft-launch to graphite-base/401 July 13, 2026 12:00
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 96fe2c9 to 81cbc42 Compare July 13, 2026 12:05
@kieran-osgood-shopify
kieran-osgood-shopify changed the base branch from graphite-base/401 to kieran-osgood/e2e-browserstack/phase-7-soft-launch July 13, 2026 12:05
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 81cbc42 to 7a02177 Compare July 13, 2026 13:30
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 7501789 to 1dd31f6 Compare July 13, 2026 13:30
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch 2 times, most recently from e9c6634 to 783c93b Compare July 13, 2026 14:54
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/e2e-browserstack/phase-7-soft-launch branch from 1dd31f6 to 5d0044f Compare July 13, 2026 14:54
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from 783c93b to dec0566 Compare July 13, 2026 15:06
@kieran-osgood-shopify
kieran-osgood-shopify changed the base branch from kieran-osgood/e2e-browserstack/phase-7-soft-launch to graphite-base/401 July 14, 2026 15:05
@kieran-osgood-shopify
kieran-osgood-shopify force-pushed the kieran-osgood/07-03-addtophatintegrationforcheckoutkitreactnativebuilds branch from dec0566 to 1aae81b Compare July 15, 2026 10:58
@graphite-app
graphite-app Bot changed the base branch from graphite-base/401 to main July 15, 2026 10:59

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

🔥

Comment thread scripts/tophat/common.rb
end

def require_tophat!
abort_with("Tophat is not installed at #{TOPHATCTL}. Run 'dev up' to install it.") unless File.executable?(TOPHATCTL)

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.

❤️

Assisted-By: devx/6c1e3ad5-96c8-4972-b087-da7ff7b195c3
Assisted-By: devx/6c1e3ad5-96c8-4972-b087-da7ff7b195c3
Assisted-By: devx/6c1e3ad5-96c8-4972-b087-da7ff7b195c3
Assisted-By: devx/9ae89f69-61a5-46e3-8faf-006d105b0cdd

kieran-osgood-shopify commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Merge activity

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