Skip to content

Make CI green and shard it five ways - #3

Open
smithbr wants to merge 13 commits into
mainfrom
ci-fast
Open

smithbr wants to merge 13 commits into
mainfrom
ci-fast

Conversation

@smithbr

@smithbr smithbr commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Makes CI green and aims for a warm-cache wall-clock time under 1:30.

Fixes

  • scripts/link.sh: on macOS /bin/bash 3.2 under load, printf could fail with EINTR when a child exited, which dropped a list line. This was why link.bats "a second run changes nothing" failed on main: run 1 lost an editor link and run 2 made it. The lists are now collected before they are printed.
  • scripts/doctor.sh: reads link.sh's output through a temp file, for the same EINTR reason.
  • Tests no longer touch the real ~/.gitconfig or /opt/homebrew, and pass from a checkout under a symlinked path.

Speed (coverage unchanged: same @test count in every file)

  • link.sh: fewer subshells and processes, output identical across 30 compared commands. link.bats uses about 40% less CPU.
  • bin_scripts.bats is split into bin_scripts, bin_pihole, bin_ph_backup, and bin_firetv, with no real sleeps and mocks written once per file.
  • deps, ai_doctor, doctor, install: fixtures built once, sleeps dropped.

CI: five macOS Bats shards (the account's concurrent macOS limit), balanced by measured time. The separate shellcheck job becomes a step in the lightest shard.

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.

1 participant