Repository navigation
ci: fix ci.yml YAML and keep fork PRs off the self-hosted runner - #43
Merged
Merged
Conversation
The runner sweep in 732d731 replaced the OS matrix with a bare label list and dropped the runs-on key, so ci.yml stopped parsing and GitHub rejected the whole workflow. Put runs-on back and drop the leftover matrix.os refs.
lineforge is public and its jobs run on a self-hosted runner on the homelab network, so only pushes and same-repo branches run there. Fork pull requests are skipped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The self-hosted runner sweep (732d731, 2026-09-09) replaced the
testjob'sos:matrix andruns-on: ${{ matrix.os }}with a bare[self-hosted, Linux, X64, haven]line that has noruns-on:key. That makesci.ymlinvalid YAML (could not find expected ':'at line 72), so GitHub rejects the whole workflow at startup and no CI job has run since.Changes
ci.yml,testjob:[self-hosted, Linux, X64, haven]becomesruns-on: [self-hosted, Linux, X64, haven].ci.yml, job nameTest (${{ matrix.os }} / py...)becomesTest (py${{ matrix.python-version }}), since there is noosmatrix any more.ci.yml, coverage upload:if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'becomesif: matrix.python-version == '3.13'. Withmatrix.osgone the old condition was always false, so coverage would never have uploaded.ci.ymlwould let fork pull requests run their code there, so every job inci.ymland thebuildjob indocs.ymlnow hasif: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository. Pushes and same-repo branches still run, but fork PRs are skipped. Thedocs.ymldeployjob is already gated bygithub.ref == 'refs/heads/main'andneeds: build, so it never runs for a PR and is left alone.release.ymlstill usesmatrix.os, but there it comes from a realinclude:matrix (multi-OS wheel builds triggered by tags or manual dispatch, not PRs), so it is valid and left alone.Checked
yaml.safe_loadfails onmain(line 72) and passes on this branch forci.ymlanddocs.yml. The parsedif:andruns-on:values are as intended for every job.actionlint1.7.7: onmainit reports the syntax error. On this branch the only findings forci.ymlanddocs.ymlare "unknown labelhaven", and both files are clean withhavendeclared as a self-hosted label.Still blocked after merge: no runner registered
This repo has no self-hosted runner registered (
GET /repos/RFingAdam/lineforge/actions/runnersreturnstotal_count: 0), and hosted runners do not start on this account. Valid workflows will sit in the queue until ahavenrunner is registered to this repo. That includesdocs.yml, which builds and deploys the GitHub Pages docs site, so the published docs will not update either.