fix(ci): move cli off self-hosted runners onto GitHub-hosted - #209
Open
acamarata wants to merge 1 commit into
Open
fix(ci): move cli off self-hosted runners onto GitHub-hosted#209acamarata wants to merge 1 commit into
acamarata wants to merge 1 commit into
Conversation
cli is a PUBLIC repo, so GitHub-hosted Actions runners are free and unlimited for it. Four workflows (12 runs-on occurrences) were pinned to [self-hosted, Linux, X64], coupling the public flagship repo's CI to a single Hetzner box (nself-sentry-runner). That box's runner registrations were auto-deleted by GitHub after ~5 weeks idle, which took CI down org-wide for this repo (confirmed: every ci.yml run since 2026-07-07 shows conclusion=cancelled, and the govuln.yml fix in #207 independently hit an unrelated stuck-macos-13-runner issue while chasing this same class of problem). Changed runs-on: [self-hosted, Linux, X64] -> runs-on: ubuntu-latest in: - .github/workflows/e2e-golden-path.yml (1 occurrence) - .github/workflows/pre-release-gate.yml (1 occurrence) - .github/workflows/release-dryrun.yml (6 occurrences) - .github/workflows/release.yml (4 occurrences) release.yml / release-dryrun.yml: only the runs-on lines changed — no release logic, version handling, tags, signing, or the homebrew- lockstep gate were touched. The "Ensure build tools present (make, zip)" self-heal shim in release.yml was left in place: it's a no-op on ubuntu-latest (build-essential + zip ship preinstalled) and touching release.yml beyond runs-on adds risk for no benefit. e2e-golden-path.yml: updated the stale self-hosted-specific comments. The prior DinD-limitation note no longer applies — ubuntu-latest ships a real host Docker daemon, not a docker:dind service container, so the `nself start` compose stack is expected to work; the job needs to be watched post-cutover to confirm. pre-release-gate.yml's "Install gh CLI helpers" step only verifies gh/jq are present (no install), so it needed no changes — both ship preinstalled on ubuntu-latest. No other workflow or script in the repo references self-hosted runner labels (grepped .github/workflows/*.yml and repo-wide for "self-hosted" / "nself-sentry-runner"); remaining hits are unrelated product-documentation mentions of nSelf being a self-hosted backend.
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.
Summary
cliis a PUBLIC repo, so GitHub-hosted Actions runners are free and unlimited for it. Four workflows (12runs-onoccurrences) were pinned to[self-hosted, Linux, X64], coupling the public flagship repo's CI to a single Hetzner box.ci.ymlrun since 2026-07-07 showsconclusion=cancelled; a stuck-macos-13-runner issue hit while landing fix(deps): bump Go toolchain to 1.26.6, clear govulncheck findings #207 is a related-but-separate symptom of the same "don't depend on one box" problem, already fixed there).runs-on: [self-hosted, Linux, X64]->runs-on: ubuntu-latest:.github/workflows/e2e-golden-path.yml(1).github/workflows/pre-release-gate.yml(1).github/workflows/release-dryrun.yml(6).github/workflows/release.yml(4)runs-onlines changed. No release logic, version handling, tags, signing, or the homebrew-lockstep gate were touched. The "Ensure build tools present (make, zip)" self-heal shim in release.yml was left as-is — it's a harmless no-op on ubuntu-latest (build-essential + zip ship preinstalled), and touching release.yml beyondruns-onadds risk for no benefit.docker:dindservice container, sonself start's compose stack is expected to work. Watching this job post-merge to confirm.gh/jqpresence (no install) — no change needed, both ship preinstalled on ubuntu-latest..github/workflows/*.ymland the whole repo forself-hosted/nself-sentry-runner— no other CI reference found. Remaining hits are unrelated product-doc mentions of nSelf being a self-hosted backend product.Test plan
python3 -c "import yaml; yaml.safe_load(open(f))"on all 4 edited workflow files — valid YAMLrelease-dryrunon a scratchrelease/v*-style ref or via re-run to confirm it runs on GitHub-hosted and is greene2e-golden-path(workflow_dispatch) — report whether it now passes on ubuntu-latest's native Docker or still fails (and why)