Skip to content

Run the checks on the self-hosted runner fleet - #22

Closed
Mearman wants to merge 4 commits into
mainfrom
ci/self-hosted-runners
Closed

Mearman wants to merge 4 commits into
mainfrom
ci/self-hosted-runners

Conversation

@Mearman

@Mearman Mearman commented Aug 21, 2026 •

Copy link
Copy Markdown
Collaborator

The org's GitHub Actions billing block stops GitHub-hosted jobs from starting, so on ubuntu-latest this repo's checks never ran at all. This moves both workflows onto gha-ci-runners, the ARC fleet on the OVH cluster, with the same adaptations as the sibling repos' runner PRs (no sudo on the runner container: gitleaks runs from the workspace by path, shellcheck becomes a static workspace binary).

Blocked, not ready: this repo's two runs have sat queued while an idle, listening fleet runner held the matching gha-ci-runners label and every sibling repo's runs were served -- the signature of the nexsys-ci-runners runner group's repository-access list not including pywr-utils. That list is an org-admin setting (Organization Settings -> Actions -> Runner groups -> nexsys-ci-runners -> Repository access), so this PR goes ready once pywr-utils is added and these checks run.

The org's GitHub Actions billing block stops GitHub-hosted jobs from
starting, so on ubuntu-latest these checks never ran at all -- every PR
on this repo has sat with checks that never leave the queue.
gha-ci-runners (the ARC fleet on the OVH cluster) is where the org's
actually-running CI already lives. gitleaks drops its sudo install (the
runner container has no sudo) and runs the extracted binary from the
workspace by path instead; nothing else changes shape.
The self-hosted runner container has no sudo, so this step never ran
successfully there. pywr-moea's and pywr-borg's own CI already confirm
the Nexsys-Analytics/ci-runners image prebakes libglpk-dev among its
other native build dependencies, so the install step is unnecessary
rather than needing a no-sudo replacement.
Moves each job's step logic out of ci.yml/gitleaks.yml into
.github/actions/{typecheck,test,test-minimal-install,gitleaks},
parameterised by a working-directory input defaulting to the repo
root. This lets mono's synced-in copy of this repo call the identical
steps locally against its subtree-prefixed path, matching the pattern
already shipped for infrastructure -- no behaviour change to this
repo's own CI, which still resolves working-directory to ".".

Also applies the org's CI hardening convention established on
cluster-api-v2 #91: every job gets timeout-minutes (15 for the
typecheck-shaped job, 30 for test, 10 for the minimal-install and
gitleaks jobs, since self-hosted runner pods have no GitHub-imposed
job limit), and the gitleaks download is checksum-verified and
time-bounded (--max-time 60, sha256sum -c against the pinned v8.21.2
release digest) rather than piped straight from curl into tar.
@Mearman

Mearman commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator Author

This branch's checks have queued and then auto-cancelled at the 24h GitHub Actions timeout twice now (2026-08-21 and 2026-08-27) rather than failing -- nothing ever picked the jobs up. gha-ci-runners works for cluster-api-v2, clusterapi-slurm, clusterapi-slurm-contract, infrastructure and monorepo today (all confirmed executing live as of 2026-09-02), so the runner label itself is right; the difference is more likely that pywr-utils hasn't been added to the self-hosted runner group's authorised-repository list at the org level (Settings -> Actions -> Runner groups), which needs an org admin -- gh api orgs/Nexsys-Analytics/actions/runner-groups 403s for me even with repo admin elsewhere in the org.

Can't push a fix myself either way: my access on this repo is currently pull-only (no push, no admin), unlike every other repo in this set. Flagging both -- the runner-group scope and the access level -- rather than guessing at either.

@Mearman

Mearman commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator Author

Filed as Nexsys-Analytics/ci-runners#1, assigned to Gio.

@Mearman

Mearman commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #29 in a stacked chain (#29 -> #30 -> #31 -> #32 -> #33). Same CI self-hosted-runner fixes, reconciled and re-verified via mono's tree.

@Mearman Mearman closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant