Skip to content

ci: drop the macOS jobs - #435

Merged
marc0olo merged 1 commit into
mainfrom
ci/drop-macos-jobs
Aug 27, 2026
Merged

ci: drop the macOS jobs#435
marc0olo merged 1 commit into
mainfrom
ci/drop-macos-jobs

Conversation

@marc0olo

Copy link
Copy Markdown
Member

Follow-up to the discussion on #434. Removes the three macOS CI jobs and the now-unused provision-darwin.sh.

They have never caught anything Linux didn't

Every completed run of the three workflows (140 runs, 2026-07-27 → 08-26):

Workflow Runs pass/pass fail/fail cancelled mac failed, linux passed
frontend.yml 60 51 3 4 0
backend-rust.yml 40 35 2 3 0
backend-motoko.yml 40 38 2 0 0

All 7 real failures failed on both platforms. The two apparent frontend divergences were success/cancelled and cancelled/success — artifacts of cancel-in-progress: true, not signal.

Coverage is preserved

Each macOS job ran a command block byte-identical to its Linux counterpart. Verified by hashing the run: bodies of the non-provisioning steps before deleting:

frontend.yml        linux 2518a70671d5  ==  mac 2518a70671d5
backend-rust.yml    linux ff569b94f041  ==  mac ff569b94f041
backend-motoko.yml  linux fa2141c56e44  ==  mac fa2141c56e44

The only differences between each pair were runs-on, the provision script, and the step name. The surviving Linux jobs execute exactly what the deleted jobs did — nothing to port over.

There is also little platform-specific surface to lose. The frontend package is portable TypeScript (@noble/* is pure JS, hashing goes through WebCrypto, IndexedDB is stubbed with fake-indexeddb); the Rust crates build to wasm32-unknown-unknown. The one genuinely platform-specific component under test was the pocket-ic binary, which exercises icp-cli's portability rather than this repo's.

Cost

macOS runners bill at 10×. Measured over the last 5 runs of each:

frontend_ic_vetkeys_mac        2.3 min  ->  23 billed min
cargo-test-backend-darwin      3.3 min  ->  33 billed min
backend-motoko-tests-darwin    3.4 min  ->  34 billed min
                               -------      ------------
                               9.0 min      ~90 billed min per full CI pass

Also cleaned up

clippy.yml and backend-rust-canbench.yml listed provision-darwin.sh in their paths: filters without ever running a macOS job. Those entries are removed along with the script.

Origin, for the record

The macOS jobs were never a considered decision. They trace to 803d2ca (Feb 2025), the first frontend CI commit, which had ubuntu-24.04 and macos-15 side by side from line one, and reached frontend.yml via #61 — a "merge crates and packages" refactor whose PR body is TODO description.

If we want some macOS coverage back

This is 98 lines of pure deletion, so git revert restores it exactly. A middle option, if the concern is that a month is a short window for a rare platform regression: re-add the jobs on push to main plus a nightly schedule instead of on pull_request. That keeps a signal for toolchain drift (provision-darwin.sh, Homebrew, the icp-cli/pocket-ic darwin binaries) at a fraction of the cost, since most runs are PR runs. Happy to do that instead if preferred.

🤖 Generated with Claude Code

Removes the three macOS jobs and the now-unused provision-darwin.sh.

They have never produced a signal Linux did not. Across every completed run
of the three workflows (140 runs, 2026-07-27..08-26) there is not one case
of a macOS job failing while its Linux counterpart passed:

  frontend.yml        60 runs   51 pass/pass   3 fail/fail   0 mac-only failures
  backend-rust.yml    40 runs   35 pass/pass   2 fail/fail   0 mac-only failures
  backend-motoko.yml  40 runs   38 pass/pass   2 fail/fail   0 mac-only failures

Every one of the 7 real failures failed on both platforms.

Coverage is preserved: each macOS job ran a command block byte-identical to
its Linux counterpart (verified by hashing the `run:` bodies -- the only
differences were `runs-on`, the provision script and the step name), so the
surviving Linux jobs execute exactly what the deleted jobs did.

macOS runners bill at 10x, and these three average 9.0 min per full CI pass,
so this saves ~90 billed minutes per pass.

Also drops provision-darwin.sh from the `paths:` filters of clippy.yml and
backend-rust-canbench.yml, which referenced it without ever running a macOS
job.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@marc0olo
marc0olo requested review from a team as code owners August 26, 2026 19:21
@marc0olo
marc0olo merged commit f4d6dd9 into main Aug 27, 2026
13 checks passed
@marc0olo
marc0olo deleted the ci/drop-macos-jobs branch August 27, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants