chore: migrate CI/release to ARC self-hosted runners#93
Conversation
Multi-Model Code Review — PR #93Verdict: REQUEST CHANGES Critical Issues1. Security: Fork PRs May Execute Untrusted Code on Self-Hosted RunnersLocation: The CI workflow triggers on Nuance: GitHub has a repo-level setting to restrict self-hosted runners from fork PRs. If this is already enabled, this is a non-issue. Verify under Settings → Actions → General → "Fork pull request workflows" that self-hosted runner access is restricted. Fix (if not already restricted): runs-on: ${{ github.event.pull_request.head.repo.fork && 'ubuntu-latest' || 'arc-runner-altimate-code' }}Major Issues2. No Fallback/Timeout StrategyLocation: All jobs in both files Every CI and release job depends on Fix: Add timeout-minutes: 30 # Add to each job3. NPM_TOKEN Written to
|
| Issue | Origin | Type |
|---|---|---|
| Fork PR security on self-hosted runners | GPT 5.2 Codex, Grok 4 | Consensus |
| No fallback/timeout strategy | Claude, Kimi K2.5, MiniMax M2.5, GLM-5 | Consensus |
| NPM_TOKEN persistence on self-hosted runner | GPT 5.2 Codex | Unique |
| Cache compatibility on ARC runners | Claude, Kimi K2.5, MiniMax M2.5, GLM-5 | Consensus |
| Incomplete migration documentation | Kimi K2.5, MiniMax M2.5, GLM-5 | Consensus |
| Missing ARC runner documentation | Kimi K2.5, Grok 4, MiniMax M2.5, GLM-5 | Consensus |
| No concurrency setting in CI | MiniMax M2.5 | Unique |
| OIDC trusted publishing verification | Claude | Unique |
Reviewed by 6 models: Claude, GPT 5.2 Codex, Kimi K2.5, Grok 4, MiniMax M2.5, GLM-5. Convergence: 1 round.
…ards - Fall back to `ubuntu-latest` for fork PRs to prevent untrusted code execution on self-hosted ARC runners - Add `timeout-minutes: 60` to all CI and release jobs (self-hosted runners have no default timeout unlike GitHub-hosted 6h limit) - Write `NPM_TOKEN` to `$RUNNER_TEMP/.npmrc` instead of `~/.npmrc` to prevent secret persistence on self-hosted runners - Set `NPM_CONFIG_USERCONFIG` to point publish step to temp `.npmrc` - Add `concurrency` group to CI workflow to cancel superseded runs
* chore: use ARC self-hosted runner for CI * chore: use ARC self-hosted runner for release workflow * fix: harden ARC runner migration with security and reliability safeguards - Fall back to `ubuntu-latest` for fork PRs to prevent untrusted code execution on self-hosted ARC runners - Add `timeout-minutes: 60` to all CI and release jobs (self-hosted runners have no default timeout unlike GitHub-hosted 6h limit) - Write `NPM_TOKEN` to `$RUNNER_TEMP/.npmrc` instead of `~/.npmrc` to prevent secret persistence on self-hosted runners - Set `NPM_CONFIG_USERCONFIG` to point publish step to temp `.npmrc` - Add `concurrency` group to CI workflow to cancel superseded runs --------- Co-authored-by: anandgupta42 <anand@altimate.ai>
Summary
ci.ymlto usearc-runner-altimate-codeinstead ofubuntu-latestrelease.ymlto usearc-runner-altimate-codeinstead ofubuntu-latestARC v2 (runner scale sets) has been deployed on AKS cluster
altimate-arcin Azure East US. Runners scale to zero when idle.Test plan
Generated with Claude Code