Thanks to visit codestin.com
Credit goes to github.com

Skip to content

chore(ci): revert switch back to github-hosted runners#10184

Merged
jdx merged 1 commit into
mainfrom
chore/revert-namespace-runners
May 31, 2026
Merged

chore(ci): revert switch back to github-hosted runners#10184
jdx merged 1 commit into
mainfrom
chore/revert-namespace-runners

Conversation

@jdx

@jdx jdx commented May 31, 2026

Copy link
Copy Markdown
Owner

Summary

Testing

  • git diff --check origin/main...HEAD

This PR was generated by an AI coding assistant.


Note

Medium Risk
CI execution and artifact caching depend on external Namespace infrastructure; misconfiguration could block merges or slow builds without affecting shipped product code.

Overview
This PR moves CI back onto Namespace runner profiles instead of default GitHub-hosted labels (ubuntu-latest / macos-latest) for docs, test, registry, hyperfine, release-plz, release tarballs, and related jobs. Linux jobs use namespace-profile-endev-linux-amd64 (or large for heavy Rust/benchmark/release builds); macOS unit tests and release macOS tarballs use namespace-profile-endev-macos-arm64, with per-workflow overrides.cache-tag values for Rust cache scoping.

For Rust compilation workflows, Swatinem/rust-cache is removed in favor of namespacelabs/nscloud-cache-action, caching ~/.cargo/registry, ~/.cargo/git, ~/.cargo/.global-cache, and ~/.cache/sccache alongside existing sccache setup. The lint job drops the prior rust-cache restore/save-if block and relies on nscloud paths only. Windows jobs in the touched files remain on windows-latest where unchanged.

Reviewed by Cursor Bugbot for commit e229aeb. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Chores
    • Updated continuous integration and deployment pipeline configurations to optimize build and test processes with improved caching mechanisms and custom runner environments.

@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR migrates GitHub Actions CI workflows from generic GitHub-hosted runners (ubuntu-latest, macos-latest) to namespace-profile runners with explicit cache configurations. The migration replaces Swatinem/rust-cache with namespacelabs/nscloud-cache-action in workflows that build or test Rust code, configuring cargo registry, cargo git, cargo global cache, and sccache directories explicitly.

Changes

Namespace-Profile Runner and Cache Infrastructure

Layer / File(s) Summary
Test workflow: build, test, and lint job migrations
.github/workflows/test.yml
Six jobs update runs-on to namespace-profile runners with cache-tag overrides; build-ubuntu, unit-macos, and nightly replace Swatinem/rust-cache with namespacelabs/nscloud-cache-action with explicit cargo and sccache paths; lint job reorders tool installation before cache action.
Registry workflow: multi-job runner and cache updates
.github/workflows/registry.yml
Six jobs (check-changes, build, list-changed-tools, validate-new-tools, test-tool, registry-ci) switch to namespace-profile runners; build job replaces rust-cache with nscloud-cache-action for cargo registry/git/global-cache and sccache directories.
Hyperfine and test-vfox job migrations with caching
.github/workflows/hyperfine.yml, .github/workflows/test-vfox.yml
Benchmark and test-vfox jobs update runners to namespace-profile variants and replace rust-cache with nscloud-cache-action with explicit cargo and sccache cache paths.
Release workflow runner updates
.github/workflows/release.yml
build-tarball-linux and build-tarball-macos jobs switch to namespace-profile runners (linux-amd64-large and macos-arm64).
Auxiliary workflow runner migrations
.github/workflows/docs.yml, .github/workflows/release-plz.yml, .github/workflows/vendored-file-warning.yml
Docs, release-plz, and vendored-file-warning workflow jobs update runners to namespace-profile with cache-tag overrides.

🎯 2 (Simple) | ⏱️ ~10 minutes

🐰 From workflows GitHub Actions dash so bright,
We hop from ubuntu-latest to runners more right,
With namespace profiles leading the way,
And caches explicit, our builds dance all day!
Blessed be the infrastructure, no more generic plight!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: reverting back to Namespace runners (the PR reverts a previous commit that switched to GitHub-hosted runners). The title is specific and directly relates to the primary objective of the changeset.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/revert-namespace-runners

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

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ab2c58c. Configure here.

Comment thread registry/amp.toml Outdated
"@ampcode/cli",
] } },
]
backends = ["npm:@sourcegraph/amp"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Amp uses deprecated npm name

Medium Severity

The amp registry entry points at npm:@sourcegraph/amp, but that package was renamed to @ampcode/cli and the old name is only a temporary npm alias. After the alias is removed, mise install amp and registry test-tool runs that rely on this backend can fail even though the prior entry used @ampcode/cli with allow_builds.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ab2c58c. Configure here.

Comment thread .github/workflows/test.yml Outdated
@greptile-apps

greptile-apps Bot commented May 31, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR reverts #10144 by moving all Linux and macOS CI jobs back to Namespace runner profiles and replacing Swatinem/rust-cache with namespacelabs/nscloud-cache-action across every workflow that does Rust compilation.

  • All eight workflow files update runs-on from ubuntu-latest/macos-latest to the appropriate Namespace profile with a cache-tag override (or a bare profile for release tarballs).
  • The nscloud-cache-action caches ~/.cargo/registry, ~/.cargo/git, ~/.cargo/.global-cache, and ~/.cache/sccache; the previous save-if gate is no longer needed because Namespace manages cache persistence natively.
  • The lint job in test.yml places nscloud-cache-action after the first taiki-e/install-action call, so cargo-deny, cargo-msrv, and cargo-machete downloads do not benefit from the restored cache (noted in a prior review thread).

Confidence Score: 5/5

Safe to merge — all changes are a well-scoped revert to a previously working CI configuration.

Every change is a mechanical runner migration: swap ubuntu-latest/macos-latest for Namespace profiles and replace Swatinem/rust-cache with nscloud-cache-action. The configuration was in production before #10144 temporarily reverted it, so the risk of introducing a novel regression is very low.

.github/workflows/test.yml — the lint job has the nscloud-cache-action step placed after the first taiki-e/install-action call, which was already flagged in a prior thread.

Important Files Changed

Filename Overview
.github/workflows/test.yml Migrates all jobs from ubuntu-latest/macos-latest to Namespace runner profiles and replaces Swatinem/rust-cache with nscloud-cache-action; the lint job places the cache action after a taiki-e/install-action call (already flagged in a previous review thread).
.github/workflows/registry.yml Switches all six jobs to Namespace profile runners; build job also replaces Swatinem/rust-cache with nscloud-cache-action.
.github/workflows/release.yml Switches build-tarball-linux and build-tarball-macos to Namespace profiles; neither job uses a cache action, consistent with cross-compilation via the cross tool.
.github/workflows/hyperfine.yml Switches runner and replaces Swatinem/rust-cache with nscloud-cache-action immediately after checkout.
.github/workflows/test-vfox.yml Switches to Namespace runner and replaces Swatinem/rust-cache with nscloud-cache-action; straightforward migration.
.github/workflows/docs.yml Runner-only change: ubuntu-latest to Namespace profile with cache-tag override.
.github/workflows/release-plz.yml Runner-only change with a dedicated mise-release-plz-rust-linux cache-tag override.
.github/workflows/vendored-file-warning.yml Runner-only change; Rust cache-tag on a shell-only job is harmless.

Reviews (2): Last reviewed commit: "chore(ci): revert switch back to github-..." | Re-trigger Greptile

Comment on lines 177 to 189
- uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 # zizmor: ignore[cache-poisoning] save-if already gates writes to main/release
with:
save-if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release' }}
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with:
tool: cargo-deny,cargo-msrv,cargo-machete
- uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1
with:
path: |
~/.cargo/registry
~/.cargo/git
~/.cargo/.global-cache
~/.cache/sccache
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with: { tool: sccache }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 The nscloud-cache-action step is placed after the first taiki-e/install-action call (which installs cargo-deny, cargo-msrv, and cargo-machete). Because nscloud mounts cache directories when the action runs, any downloads that happen before this step won't benefit from cache restore. Every other job in this PR places the cache action immediately after checkout. Moving it up gives the tool-install steps the same cache benefit as the rest of the pipeline.

Suggested change
- uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 # zizmor: ignore[cache-poisoning] save-if already gates writes to main/release
with:
save-if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release' }}
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with:
tool: cargo-deny,cargo-msrv,cargo-machete
- uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1
with:
path: |
~/.cargo/registry
~/.cargo/git
~/.cargo/.global-cache
~/.cache/sccache
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with: { tool: sccache }
- uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
- uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1
with:
path: |
~/.cargo/registry
~/.cargo/git
~/.cargo/.global-cache
~/.cache/sccache
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with:
tool: cargo-deny,cargo-msrv,cargo-machete
- uses: taiki-e/install-action@51cd0b8c0499559d9a4d75c0f5c67bec3a894ec8 # v2
with: { tool: sccache }

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

Comment thread registry/infisical.toml Outdated
@github-actions

github-actions Bot commented May 31, 2026

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.16 x -- echo 17.0 ± 0.7 15.6 19.8 1.00
mise x -- echo 17.6 ± 1.9 16.0 56.9 1.04 ± 0.12

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.16 env 17.0 ± 0.8 15.5 21.2 1.00
mise env 17.5 ± 0.8 15.8 21.2 1.03 ± 0.07

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.16 hook-env 17.6 ± 0.7 16.0 20.5 1.00
mise hook-env 18.2 ± 0.9 16.4 23.1 1.03 ± 0.07

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.16 ls 14.1 ± 0.6 12.8 17.0 1.00
mise ls 14.5 ± 0.7 13.2 17.0 1.03 ± 0.07

xtasks/test/perf

Command mise-2026.5.16 mise Variance
install (cached) 129ms 131ms -1%
ls (cached) 56ms 56ms +0%
bin-paths (cached) 61ms 62ms -1%
task-ls (cached) 119ms 121ms -1%

Reverts a3126f5 (chore(ci): switch back to github-hosted runners).
@jdx jdx force-pushed the chore/revert-namespace-runners branch from ab2c58c to e229aeb Compare May 31, 2026 19:38
@jdx jdx merged commit 05c5eae into main May 31, 2026
65 of 72 checks passed
@jdx jdx deleted the chore/revert-namespace-runners branch May 31, 2026 20:10
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