[Feature] Give the quality gate a runner, or turn the Actions unit off #592
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#592
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found in the pre-publication contributor-journey review.
Evidence: the Forgejo API reports
has_actions: true,GET /actions/runners→[],GET /actions/tasks→{"workflow_runs":[],"total_count":0},GET /branch_protections→[]..github/workflows/ci.ymldeclaresruns-on: ubuntu-latestplus amacos-latest/windows-latestmatrix.Measured cost of the gate, on a clean
mainworktree:make checkcompleted in 164.75 s — 5,627 tests, 86.2% coverage, all green.Why this matters now: the repository advertises an Actions unit that has never produced a single run and has no runner behind it. A contributor pull request therefore shows no signal at all, and the maintainer has only the author word for it. The measurement removes the usual excuse: the Linux
gatejob is under three minutes, well within a single small self-hosted runner. The macOS/Windows matrix is the part that genuinely cannot run there.Anyone who finds
.github/workflows/also reasonably concludes this project lives on GitHub and that CI will check their work. Both are false, and discovering it after opening a pull request is a poor first contribution experience.Proposal: register one Linux runner and wire only the
gatejob to it, moving the desktop matrix behindworkflow_dispatchor dropping it. If that is not happening before publication, sethas_actions: falseand put a one-line header inci.ymlsaying it is a reference definition that no runner executes.docs/CHECKS.md:8-10already says this honestly; the forge does not.De helft die in de repo thuishoort is gedaan (PR #701, op main). Het issue blijft open voor de andere.
Bovenaan
ci.ymlenrelease.ymlstaat nu dat geen runner ze uitvoert, dat er dus nooit één run is geweest, en waar de echte poort zit:make check, lokaal, ongeveer drie minuten — dus iets wat een bijdrager zélf kan draaien.docs/CHECKS.mdzei dit al eerlijk, maar dít zijn de bestanden die een bijdrager als eerste vindt, en dat is precies je punt. De zin die ik het belangrijkst vond om op te schrijven: een groen vinkje dat je niet ziet is geen controle die slaagde, maar een controle die nooit begon.Wat er niet in zit, en waarom niet:
has_actions: falsezetten — een instelling op de forge, geen code, en het verandert wat de forge naar buiten toont. Eén PATCH op/api/v1/repos/LibreKAT/Ocideckmet{"has_actions": false}; die knop is van jou.De header is de eerlijkheid, niet de oplossing — vandaar dat dit open blijft.
Nu volledig rond. Je koos "doe maar" op de of-of, en van de twee kon ik er één zelf uitvoeren:
has_actionsstaat uit.PATCH /repos/LibreKAT/Ocideckmet{"has_actions": false}→ 200, geverifieerd (has_actions: false). De forge adverteert nu geen Actions-eenheid meer die nooit heeft gedraaid. Samen met de header bovenci.yml/release.yml(PR #701) is er nergens meer een groen vinkje beloofd dat niet bestaat.De andere tak — één Linux-runner registreren en alleen de
gate-job eraan hangen — heb ik bewust níét gedaan: dat vraagt een fysieke machine en een runner-token, en het is een lopende voorziening die jij beheert, niet iets wat een sessie eenmalig opzet. Je meting maakt hem aantrekkelijk (de gate-job is onder drie minuten), dus als je later een self-hosted runner neerzet, staat de workflow klaar; zethas_actionsdan weer aan.Sluit dit.