Skip to content

fix(ci): move cli off self-hosted runners onto GitHub-hosted - #209

Open
acamarata wants to merge 1 commit into
mainfrom
fix/cli-off-self-hosted-runners
Open

fix(ci): move cli off self-hosted runners onto GitHub-hosted#209
acamarata wants to merge 1 commit into
mainfrom
fix/cli-off-self-hosted-runners

Conversation

@acamarata

Copy link
Copy Markdown
Collaborator

Summary

  • 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.
  • That box's runner registrations were auto-deleted by GitHub after ~5 weeks idle, taking CI down org-wide for this repo (every ci.yml run since 2026-07-07 shows conclusion=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).
  • Changed 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)
  • release.yml / release-dryrun.yml: only 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 as-is — it's a harmless 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 doesn't apply here — ubuntu-latest ships a real host Docker daemon, not a docker:dind service container, so nself start's compose stack is expected to work. Watching this job post-merge to confirm.
  • pre-release-gate.yml's "Install gh CLI helpers" step only verifies gh/jq presence (no install) — no change needed, both ship preinstalled on ubuntu-latest.
  • Grepped .github/workflows/*.yml and the whole repo for self-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 YAML
  • CI checks on this PR green (ubuntu-latest jobs, no self-hosted dependency)
  • After merge: trigger release-dryrun on a scratch release/v*-style ref or via re-run to confirm it runs on GitHub-hosted and is green
  • After merge: observe/trigger e2e-golden-path (workflow_dispatch) — report whether it now passes on ubuntu-latest's native Docker or still fails (and why)

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.
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