Skip to content

ci(claude-code-review): default runs-on to the self-hosted pool - #88

Merged
nkg merged 1 commit into
mainfrom
ci/self-hosted-review-default
Sep 21, 2026
Merged

nkg merged 1 commit into
mainfrom
ci/self-hosted-review-default

Conversation

@nkg

@nkg nkg commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Actions credits are exhausted across HordiaLabs, Sproncy and Regularmusic, so a GitHub-hosted job doesn't run at all — it fails ~2s after queueing:

The job was not started because recent account payments have failed or your spending limit needs to be increased

41 private repos take this reusable's ubuntu-24.04 default. Every other workflow in those repos already passes a self-hosted runs-on, so the billing stop doesn't read as a billing stop — it reads as one flaky reviewer, red on every PR while ci, docker-build, trivy, gitleaks and lint pass on the same commit. (Observed on HordiaLabs/extractor-llm#59.)

Org On the hosted default Already overriding
HordiaLabs 16 2
Sproncy 22 2
Regularmusic 3 0

What this changes

default: '["ubuntu-24.04"]'default: '["self-hosted", "linux", "x64"]', matching claude.yml, which has defaulted to the pool all along with public repos opting out via an ubuntu label. The two Claude reusables are now consistent.

The original reasons are kept in the comment, because they're still true: this job needs no private network, no local toolchain and no state, and on a contended pool it queued 40–77 minutes for 3–6 minutes of work and failed at runner assignment about one run in six. What changed is only that the hosted alternative can't start. A slow, occasionally flaky review beats no review — and this one is advisory regardless, since the claude-code-action step is continue-on-error and can't block a PR on either runner.

Public repos

The comment now says the opt-out is about fork PRs on a self-hosted pool, the hazard GitHub warns about, not just free minutes. I checked before flipping: no public repo consumes this reusable today — HordiaLabs has no public repos, Sproncy's only one (spacy-alignments) has no review workflow, and none of the nkg/* public repos call it. So nothing is silently moved onto the pool. A future public consumer must pass '["ubuntu-24.04"]'.

Reach

Delivery depends on how each consumer pins, so this isn't instant everywhere:

  • @v3 consumers (e.g. HordiaLabs/scraper-core, Sproncy/sproncy-accord, Sproncy/GitHub-runners, Regularmusic/iac) pick it up as soon as release.yml moves the floating major tag — so this needs a tagged release, not just a merge.
  • SHA-pinned consumers (e.g. HordiaLabs/extractor-llm, fetcher-camoufox, extractor-css) get it when Dependabot bumps the pin. Anything urgent there wants a per-repo runs-on in the meantime — extractor-llm has one in HordiaLabs/extractor-llm#60.

Revisit when credits reset; hosted is the right default the moment it can actually start a job.

🤖 Generated with Claude Code

https://claude.ai/code/session_015wGZqkEacSGCx8watYCm1b

Actions credits are exhausted across HordiaLabs, Sproncy and Regularmusic,
so a GitHub-hosted job does not run at all: it fails about two seconds after
queueing with "The job was not started because recent account payments have
failed or your spending limit needs to be increased".

41 private repos take this reusable's `ubuntu-24.04` default, and every other
workflow in those repos already passes a self-hosted `runs-on`. So the
billing stop does not read as a billing stop -- it reads as one flaky
reviewer, red on every PR while ci, docker-build, trivy, gitleaks and lint
all pass on the same commit.

The reasons for the hosted default are still true and are kept in the
comment: the job needs no private network, no local toolchain and no state,
and on a contended pool it queued 40-77 minutes for 3-6 minutes of work and
failed at runner assignment about one run in six. But a slow, occasionally
flaky review beats no review, and this one is advisory either way -- the
claude-code-action step is continue-on-error and cannot block a PR on any
runner.

This also makes the two Claude reusables consistent: claude.yml has defaulted
to the self-hosted pool all along, with public repos opting out by passing an
ubuntu label. Same convention here now, and the comment spells out that the
opt-out is about fork PRs on a self-hosted pool, not just free minutes. No
public repo consumes this reusable today -- checked the three orgs and the
nkg/* public repos -- so nothing is silently moved onto the pool by this.

Revisit when credits reset.
@nkg
nkg merged commit 5155428 into main Sep 21, 2026
12 checks passed
@nkg
nkg deleted the ci/self-hosted-review-default branch September 21, 2026 16:50
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