Skip to content

ci: retire self-hosted A1 runner, move all jobs back to GitHub-hosted#1947

Merged
kixelated merged 1 commit into
mainfrom
claude/inspiring-dewdney-efd444
Jun 29, 2026
Merged

ci: retire self-hosted A1 runner, move all jobs back to GitHub-hosted#1947
kixelated merged 1 commit into
mainfrom
claude/inspiring-dewdney-efd444

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

Retire the moq-dev self-hosted ARM (Oracle A1) runner and run all CI/release jobs on GitHub-hosted runners again. This reverts the #1793 migration that moved the Nix workflows onto the box.

Workflow Before After
check.yml self-hosted (forks → ubuntu-24.04-arm) ubuntu-24.04-arm, dropped the fork conditional and all runner.environment if: guards
cachix.yml aarch64-linux on self-hosted aarch64-linux on ubuntu-24.04-arm (coverage kept), removed the PATH/substituter conditionals
release-rs.yml self-hosted + persistent CARGO_TARGET_DIR ubuntu-latest + nix-installer
release-js.yml self-hosted ubuntu-latest + nix-installer
release-py.yml self-hosted ubuntu-latest + nix-installer
update-flake.yml self-hosted + owner guard ubuntu-latest + nix-installer

ARM is kept where arch matters (check, since the A1 was ARM so trusted PRs already ran on ARM; and the aarch64-linux cachix leg) using GitHub's GA ubuntu-24.04-arm runners. The arch-independent publish jobs go back to their original ubuntu-latest.

Also deleted .github/actionlint.yaml (it only existed to whitelist the nix runner label) and cleaned the stale "4-core A1" / persistent-target comments out of rs/justfile.

Caching: dropped dead magic-nix-cache

While restoring the pre-self-hosted caching, removed DeterminateSystems/magic-nix-cache-action from check.yml and smoke.yml. It was sunset upstream (now gated behind FlakeHub registration, failing every Nix job with a "FlakeHub registration required" annotation) and was already deliberately dropped in #1769; it crept back via the self-hosted fallback and the #1871 smoke workflow.

It added near-zero value here: the devShell is all prebuilt nixpkgs + rust-overlay binaries, so cache.nixos.org covers the Nix store for free, and Rust is cached by Swatinem/rust-cache (retained). This matches the proven post-#1769 setup.

Notes for reviewers

  • No public API or wire changes; CI-only, targets main.
  • The self-hosted A1 instance itself (the ~/work/oci OpenTofu config) is a separate teardown — this PR only removes the repo's use of the runner.
  • The dev branch may still reference the self-hosted runner in its workflow files until this propagates via a main → dev merge.
  • All six modified workflows + smoke.yml pass actionlint.

(Written by Claude Opus 4.8)

Drop the moq-dev self-hosted ARM runner everywhere and run CI/release on
GitHub-hosted runners again, reverting the #1793 migration.

- check.yml: ubuntu-24.04-arm unconditionally (was self-hosted with a fork
  fallback); remove the per-step runner.environment guards.
- cachix.yml: build aarch64-linux on ubuntu-24.04-arm; drop the self-hosted
  PATH/substituter conditionals.
- release-rs/js/py + update-flake: back to ubuntu-latest with the Nix
  installer; drop the persistent CARGO_TARGET_DIR and login-shell shims that
  only made sense on the box.
- Delete .github/actionlint.yaml (existed only to whitelist the `nix` label).
- rs/justfile: drop the stale "4-core A1" / persistent-target comments.

Also remove the dead DeterminateSystems/magic-nix-cache-action from check.yml
and smoke.yml. It was sunset upstream (now requires FlakeHub registration and
fails every Nix job with a nag annotation) and was already dropped in #1769;
it crept back via the self-hosted fallback and the #1871 smoke workflow. The
Nix store comes from cache.nixos.org for free (prebuilt devShell) and Rust is
cached by Swatinem/rust-cache, which is retained.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @kixelated, you have reached your weekly rate limit of 2500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@kixelated kixelated enabled auto-merge (squash) June 29, 2026 23:00
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c4d3181e-5de6-4577-bd27-d5c095c083ad

📥 Commits

Reviewing files that changed from the base of the PR and between ac2e9f6 and 4359b40.

📒 Files selected for processing (9)
  • .github/actionlint.yaml
  • .github/workflows/cachix.yml
  • .github/workflows/check.yml
  • .github/workflows/release-js.yml
  • .github/workflows/release-py.yml
  • .github/workflows/release-rs.yml
  • .github/workflows/smoke.yml
  • .github/workflows/update-flake.yml
  • rs/justfile
💤 Files with no reviewable changes (2)
  • .github/actionlint.yaml
  • .github/workflows/smoke.yml

Walkthrough

All GitHub Actions workflows drop self-hosted Nix runner configurations in favor of standard GitHub-hosted runners (ubuntu-latest, ubuntu-24.04-arm). Each affected workflow gains an explicit DeterminateSystems/nix-installer-action step to install Nix. Conditional logic gating steps to runner.environment == 'github-hosted' is removed, magic-nix-cache-action is removed from check.yml and smoke.yml, custom shell: bash -leo pipefail {0} overrides and CARGO_TARGET_DIR persistence are dropped from release workflows. The actionlint.yaml self-hosted runner label config is also removed. A comment in rs/justfile is updated to remove references to self-hosted runner behavior.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main CI migration from the self-hosted A1 runner back to GitHub-hosted runners.
Description check ✅ Passed The description is detailed and directly matches the workflow and runner changes in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch claude/inspiring-dewdney-efd444

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kixelated kixelated merged commit 6bcedb4 into main Jun 29, 2026
3 checks passed
@kixelated kixelated deleted the claude/inspiring-dewdney-efd444 branch June 29, 2026 23:16
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