From 539dd0131bf5e881d5527b1ce31e56412ad1be4e Mon Sep 17 00:00:00 2001 From: Matthew Jackson <1085847+MattJackson@users.noreply.github.com> Date: Sun, 9 Aug 2026 20:24:07 -0700 Subject: [PATCH] Keep the cross-platform jobs for the release candidate dev is where work lands and is meant to be pushed to often, so what runs there should be the cheap answer to "did I break it": lint, tests and the Linux build. The macOS and Windows jobs now run on qa and main instead of on every push to dev. Nothing is deleted and no platform goes unchecked before a release. qa.yml already covers macOS and Windows independently, and the jobs that live only here -- the Intel macOS build, the Windows release build -- still run, on the branches where a cross-platform break is worth blocking on. They are SKIPPED on dev via `if`, not left unscheduled. A queued job would be worse than a slow one: release.sh's CI gate refuses while any run for the commit is still in progress, so a job that never gets a runner blocks releases silently, with no error anywhere. That is the failure the real-media note in qa.yml describes, and it is why this is an `if` on the job rather than a narrower set of trigger branches. --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c89f36..8cbeac7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,6 +77,19 @@ jobs: working-directory: libfreemkv check-macos: + # dev is the FAST lane: this job still runs, but on the release-candidate + # branches rather than on every push to dev. Nothing is deleted and no + # platform stops being checked before a release -- qa.yml independently + # covers macOS and Windows, and the jobs unique to this file (the Intel + # macOS build, the Windows release build) run here on qa and main. A push + # to dev is meant to be cheap and frequent; waiting on three runner pools + # to agree is what a release candidate is for. + # + # `if` SKIPS the job (it does not queue). A queued job would be far worse + # than a slow one: release.sh's CI gate refuses while any run for the + # commit is still in progress, so a never-scheduled job blocks releases + # silently -- see the note on real-media in qa.yml. + if: github.ref_name == 'qa' || github.ref_name == 'main' runs-on: macos-latest steps: - uses: actions/checkout@v7 @@ -104,6 +117,19 @@ jobs: working-directory: libfreemkv check-windows: + # dev is the FAST lane: this job still runs, but on the release-candidate + # branches rather than on every push to dev. Nothing is deleted and no + # platform stops being checked before a release -- qa.yml independently + # covers macOS and Windows, and the jobs unique to this file (the Intel + # macOS build, the Windows release build) run here on qa and main. A push + # to dev is meant to be cheap and frequent; waiting on three runner pools + # to agree is what a release candidate is for. + # + # `if` SKIPS the job (it does not queue). A queued job would be far worse + # than a slow one: release.sh's CI gate refuses while any run for the + # commit is still in progress, so a never-scheduled job blocks releases + # silently -- see the note on real-media in qa.yml. + if: github.ref_name == 'qa' || github.ref_name == 'main' runs-on: windows-latest steps: - uses: actions/checkout@v7