Skip to content

ci: drop macOS, Windows on Node 22 only, as a non-required check - #260

Merged
askalf merged 1 commit into
masterfrom
ci-windows-one-node
Oct 7, 2026
Merged

askalf merged 1 commit into
masterfrom
ci-windows-one-node

Conversation

@askalf

@askalf askalf commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

The test matrix ran ubuntu, windows and macos, each on Node 20, 22 and 24: nine jobs. After this it runs four.

before after
ubuntu 20, 22, 24 20, 22, 24
windows 20, 22, 24 22
macos 20, 22, 24 none
  • macOS goes: it runs nothing Linux doesn't. CI sets CANON_NO_KEYCHAIN=1, and keychain.test.mjs drives a fake keychain, so the macOS-only branch (security in src/keychain.mjs) never runs in CI.
  • Windows stays: it's the only place the Windows-only behaviour runs, such as the lock guard that read as EPERM mid-release (lock: a guard mid-release reads as EPERM on Windows — treat it as contention #197). The packed tarball job also keeps its Windows entry.
  • One Node version on Windows: that behaviour doesn't vary by Node version, so Node 22 covers it.
  • Windows becomes non-required: it runs on GitHub's runners. While it's required, a hosted outage or an Actions billing block holds every merge here, as one did today.
  • CONTRIBUTING.md now lists the required checks as they will be.

Check names after this: test (ubuntu-latest, 20), test (ubuntu-latest, 22), test (ubuntu-latest, 24), test (windows-latest, 22).

Ruleset (before merge)

The master protection ruleset requires test (windows-latest, 20), test (macos-latest, 20) and test (macos-latest, 22), which this removes, and test (windows-latest, 22), which becomes optional. All four have to come off the required list before this merges; otherwise every PR waits on checks that never report. Staged for the operator as RUN-ruleset-windows-optional.sh.

Tests

  • node scripts/fleet-status.test.mjs: 180 pass. Its runner checks evaluate the unchanged runs-on expression.
  • The workflow parses, and its matrix expands to the four names above.

The test matrix ran ubuntu, windows and macos on Node 20, 22 and 24:
nine jobs. macOS ran nothing Linux does not: CI sets CANON_NO_KEYCHAIN
and the keychain tests use the fake, so the macOS security branch never
runs. Windows is the only place the Windows-only behaviour runs (the
lock guard read as EPERM mid-release, Git Bash paths), which does not
vary by Node version, so it keeps one entry on Node 22. Linux keeps 20,
22 and 24. Four jobs instead of nine. The Windows entry runs on
GitHub's runners, so it is made non-required in the ruleset: a hosted
outage or billing block no longer holds every merge here.
@github-actions github-actions Bot added documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code size/S 10-49 hand-written lines labels Oct 7, 2026
@askalf
askalf enabled auto-merge (squash) October 7, 2026 17:49

@sprayberry-redline sprayberry-redline left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: approve. The matrix produces three Ubuntu jobs and one Windows job on Node 22 while preserving runner selection and the packed-tarball checks. The contributor guidance matches the intended required checks, subject to the ruleset update explicitly called out before merge.

@askalf
askalf merged commit 5a749e2 into master Oct 7, 2026
19 checks passed
@askalf
askalf deleted the ci-windows-one-node branch October 7, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code size/S 10-49 hand-written lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants