ci: move Linux CI to self-hosted ARC (sized -4/-8)#158
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
Next review available in: 56 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThis PR updates CI configuration to use self-hosted Kubernetes runners. It adds allowed runner labels to actionlint.yaml, and switches Linux jobs in the build-native-binaries and publish-npm-packages workflows from ubuntu-latest to ever-k8s-linux-x64-4. ChangesSelf-hosted runner migration
Estimated code review effort: 1 (Trivial) | ~5 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Greptile SummaryThis PR moves Linux GitHub Actions jobs onto sized self-hosted ARC runners. The main changes are:
Confidence Score: 4/5The changed Linux CI paths can fail on ARC images that do not provide hosted Ubuntu defaults.
.github/workflows/build-native-binaries.yml and .github/workflows/publish-npm-packages.yml Important Files Changed
Reviews (1): Last reviewed commit: "ci: move Linux CI to sized self-hosted A..." | Re-trigger Greptile |
| matrix: | ||
| include: | ||
| - os: ubuntu-latest | ||
| - os: ever-k8s-linux-x64-4 |
There was a problem hiding this comment.
This workflow runs node ./scripts/sync-package-versions.js and later node ./scripts/prepare-platform-package.js, but it never installs Node. That worked on ubuntu-latest because Node is part of the hosted image; on a minimal ever-k8s-linux-x64-4 runner, every Linux matrix leg fails with node: command not found before the native binary is built.
| artifact_name: ever-cli-linux-x64-gnu | ||
| package_dir: npm/cli-linux-x64-gnu | ||
| - os: ubuntu-latest | ||
| - os: ever-k8s-linux-x64-4 |
There was a problem hiding this comment.
Ubuntu Package Manager Required
The musl leg now runs on ever-k8s-linux-x64-4, but the job still installs musl-tools with sudo apt-get. If the ARC runner image is not Ubuntu/Debian-based or does not provide passwordless sudo, this matrix entry fails before cargo build and the ever-cli-linux-x64-musl artifact is never produced.
| artifact_name: ever-cli-linux-x64-musl | ||
| package_dir: npm/cli-linux-x64-musl | ||
| - os: ubuntu-latest | ||
| - os: ever-k8s-linux-x64-4 |
There was a problem hiding this comment.
The ARM64 Linux leg now runs on the custom ARC runner while later steps install gcc-aarch64-linux-gnu through sudo apt-get and set Cargo to use /usr/bin/aarch64-linux-gnu-gcc. On a non-Ubuntu or minimal runner image, that package install or linker path can be missing, causing the aarch64-unknown-linux-gnu build to fail.
| artifact_name: ever-cli-linux-x64-gnu | ||
| package_dir: npm/cli-linux-x64-gnu | ||
| - os: ubuntu-latest | ||
| - os: ever-k8s-linux-x64-4 |
There was a problem hiding this comment.
This publish matrix entry moved to ever-k8s-linux-x64-4, but the job still depends on sudo apt-get install musl-tools. If the self-hosted runner image lacks apt or passwordless sudo, the musl package publish leg fails and publish-main is skipped because it needs publish-platform.
| artifact_name: ever-cli-linux-x64-musl | ||
| package_dir: npm/cli-linux-x64-musl | ||
| - os: ubuntu-latest | ||
| - os: ever-k8s-linux-x64-4 |
There was a problem hiding this comment.
The ARM64 Linux publish leg now runs on ever-k8s-linux-x64-4, but later steps still install gcc-aarch64-linux-gnu with sudo apt-get and point Cargo at /usr/bin/aarch64-linux-gnu-gcc. If the ARC image does not match the Ubuntu toolchain layout, this leg fails and the final package publish does not run.
Transform runs-on labels to use org variable expressions with fallback:
- ever-k8s-linux-x64-4 → ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
- ever-k8s-linux-x64-8 → ${{ vars.RUNNER_LINUX_X64_8 || 'ubuntu-latest' }}
Enables repos to use self-hosted ARC runners when available, falling back
to GitHub-hosted ubuntu-latest in environments without the org variables.
- build-native-binaries.yml: 3 matrix entries (x64-gnu, x64-musl, arm64-gnu)
- publish-npm-packages.yml: 5 runs-on entries (preflight, 3 platform, main job)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|
1 similar comment
|
|
Move cloud Linux CI to sized self-hosted ARC runners
Regenerates Linux CI to run on our in-cluster ARC runners (
k8s-w1..w5), sized by workload.Runner mapping applied
All bare cloud Linux labels on non-CodeQL jobs were remapped to sized self-hosted labels:
ever-k8s-linux-x64-4— 8 Linux jobsever-k8s-linux-x64-8— 0 jobs (no 8-core-class labels present in this repo)Per file:
.github/workflows/build-native-binaries.yml— 3 matrix Linux entries (x64-gnu,x64-musl,arm64-gnucross-build) →ever-k8s-linux-x64-4.github/workflows/publish-npm-packages.yml—preflight-publish+ 3 matrix Linux entries +publish-main→ever-k8s-linux-x64-4.github/actionlint.yaml— new; declares both self-hosted labels (ever-k8s-linux-x64-4,ever-k8s-linux-x64-8) so actionlint recognizes themLeft on GitHub-hosted (unchanged)
codeql.yml) — stays GitHub-hosted (github/codeql-action); untouchedmacos-latest) and Windows (windows-latest) matrix legs*-arm,ubuntu-latest-16-cores, or Ubicloud ARM labels exist in this repo, so none were touchedNotes
develop.