Every job in this repo runs on [self-hosted, macOS] since v0.4.7 — except selftest, which is still ubuntu-latest. That is also the only workflow that has stopped dispatching.
Symptom
No selftest run for PR #3, PR #5, or the merges of either to main. Actions is enabled, the workflow is active, and zero check runs were created. Reopening a PR to re-fire pull_request changed nothing. Last successful run: 2026-07-27.
Meanwhile every self-hosted job across the org kept running normally.
Likely cause
GitHub-hosted runners are a separate capacity/billing path from self-hosted ones, so a block there takes out exactly this job and nothing else. Billing wasn't checkable without admin:org — but the correlation is one-to-one: the only hosted job is the only broken one.
Fix
Move selftest to [self-hosted, macOS]. Nothing in it needs Linux — actionlint ships a darwin build, and the tests are offline python3 + git.
Also: install actionlint into $RUNNER_TEMP rather than the workspace. A self-hosted runner reuses its checkout, so ./actionlint would otherwise be left untracked in the working tree between runs.
Also in here — two stale comments from v0.4.7
distribute-pr.yml:113 — "this ubuntu job gates the expensive macOS verify", but it's been [self-hosted, macOS] since v0.4.7.
memory-watch.yml:135 — "Cheap gate on ubuntu", same.
Both are comment-only; no behaviour change for callers, so no new tag is needed. selftest isn't a reusable workflow, so this doesn't affect anyone's pin.
Every job in this repo runs on
[self-hosted, macOS]since v0.4.7 — exceptselftest, which is stillubuntu-latest. That is also the only workflow that has stopped dispatching.Symptom
No
selftestrun for PR #3, PR #5, or the merges of either tomain. Actions is enabled, the workflow isactive, and zero check runs were created. Reopening a PR to re-firepull_requestchanged nothing. Last successful run: 2026-07-27.Meanwhile every self-hosted job across the org kept running normally.
Likely cause
GitHub-hosted runners are a separate capacity/billing path from self-hosted ones, so a block there takes out exactly this job and nothing else. Billing wasn't checkable without
admin:org— but the correlation is one-to-one: the only hosted job is the only broken one.Fix
Move
selftestto[self-hosted, macOS]. Nothing in it needs Linux — actionlint ships a darwin build, and the tests are offlinepython3+git.Also: install actionlint into
$RUNNER_TEMPrather than the workspace. A self-hosted runner reuses its checkout, so./actionlintwould otherwise be left untracked in the working tree between runs.Also in here — two stale comments from v0.4.7
distribute-pr.yml:113— "this ubuntu job gates the expensive macOS verify", but it's been[self-hosted, macOS]since v0.4.7.memory-watch.yml:135— "Cheap gate on ubuntu", same.Both are comment-only; no behaviour change for callers, so no new tag is needed.
selftestisn't a reusable workflow, so this doesn't affect anyone's pin.