ci: pin the e2e runner to macOS 15 and trust the tap before the brew install - #728
Merged
Merged
Conversation
The macos-latest-xlarge label moved to the macOS 26 image, where the bundled Appium driver dies during app extraction and takes the whole session with it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Homebrew now refuses to load formulae from non-official taps until they are explicitly trusted, which fails the brew integration test at the install step. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
austin-autify
marked this pull request as ready for review
August 13, 2026 02:26
xiankai
approved these changes
Aug 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two CI fixes that have to land together, because each job is red for the reason the other one fixes.
Pinning the e2e runner to macOS 15
The
macos-latest-xlargelabel migrated frommacos-15-arm64tomacos-26-arm64between 22 Jun and 10 Jul, and the e2e job has failed on every run since. Nothing in this repo or in mobilelink changed across that boundary:macos-15-arm64, Xcode 16.4 — passes, noEPIPEanywhere in the runmacos-26-arm64, Xcode 26.6 —EPIPEevery run, fatal0.6.6, identical bundlednode-v22.22.3, identical test appOn the newer image the app download outruns
bsdtar, which exits as soon as it has the archive, so the trailing write raisesEPIPE.appium-xcuitest-driver8.4.3 registers no error listener on that stream, so it escalates to an uncaught exception and kills the Appium server mid-session. MobileLink then tears down the session and the CLI waits out its full 1200s timeout, which is why it surfaces as a timeout rather than an error.Selecting an older Xcode does not help. The crash happens during app extraction, before any simulator work, and
bsdtarcomes from the OS rather than the toolchain — themacos-26image also only ships Xcode 26.x.macos-15-arm64has no deprecation badge and no retirement issue open, and GitHub maintains the latest two macOS versions, so the label should hold until macOS 27 images land.Trusting the tap before the brew install
Homebrew gained a trust model for third-party taps, so loading the formula now fails outright:
The brew integration test has failed on every run since 10 Jul for this reason, last passing on 22 Jun. Trusting the tap first is the supported escape hatch — non-interactive, only recording the entry in a local trust file. Trusting the tap rather than the individual formula also survives a formula rename.
This affects real installs too: anyone running
brew install autifyhq/tap/autify-clion a current Homebrew hits the same refusal, so the install docs need the same step.The runner pin is a workaround rather than a fix, and it does mean the e2e stops exercising the OS customers are migrating to. The underlying
EPIPEdefect is three lines in the driver and is tracked separately.