Skip to content

ci: migrate CodeQL & Snyk runners to self-hosted ARC (develop) - #48

Merged
evereq merged 2 commits into
developfrom
ci/runners-selfhosted
Jul 19, 2026
Merged

evereq merged 2 commits into
developfrom
ci/runners-selfhosted

Conversation

@evereq

@evereq evereq commented Jul 19, 2026

Copy link
Copy Markdown
Member

Migrate the remaining GitHub-hosted ubuntu-latest runners to the self-hosted ARC fleet.

  • codeql-analysis.yml: analyze job ubuntu-latest -> ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}
  • snyk-analysis.yml: analyze/upload-sarif job ubuntu-latest -> ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}

Security-analysis jobs (CodeQL / Snyk / upload-sarif) always use the smallest _4 pool per policy. All other workflows already use vars.RUNNER_LINUX_X64_* and were left untouched. No arm64/macos/windows runners touched.

🤖 Generated with Claude Code

@evereq
evereq merged commit 2856985 into develop Jul 19, 2026
6 of 9 checks passed
@evereq
evereq deleted the ci/runners-selfhosted branch July 19, 2026 12:10
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@evereq, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5769a234-8568-4d8f-8880-69f8aa725c08

📥 Commits

Reviewing files that changed from the base of the PR and between f810648 and 8c32763.

📒 Files selected for processing (2)
  • .github/workflows/codeql-analysis.yml
  • .github/workflows/snyk-analysis.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/runners-selfhosted

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.

@greptile-apps

greptile-apps Bot commented Jul 19, 2026 •

Copy link
Copy Markdown

Greptile Summary

This PR migrates the runs-on target in both codeql-analysis.yml and snyk-analysis.yml from the hardcoded ubuntu-latest to ${{ vars.RUNNER_LINUX_X64_4 || 'ubuntu-latest' }}, bringing these two security-analysis workflows in line with the self-hosted ARC runner pattern already used by all other workflows in the repository.

  • Both changes are a single-line runs-on substitution with a safe ubuntu-latest fallback when the repository variable is unset.
  • A pre-existing concern worth noting: snyk/actions/node@master is pinned to a floating master ref, posing a supply-chain risk in the Snyk workflow unrelated to this PR's change.

Confidence Score: 5/5

Safe to merge — the only change is a one-line runs-on substitution in each file, with an ubuntu-latest fallback that keeps both workflows functional if the repository variable is not set.

Both files receive identical, minimal runner-targeting changes consistent with the pattern already used across other workflows in the repository. The fallback expression ensures no regression if RUNNER_LINUX_X64_4 is absent. The one flagged concern is a pre-existing issue not introduced by this PR.

No files require special attention for this change; the pre-existing floating snyk/actions/node@master ref in snyk-analysis.yml is worth a follow-up but is outside the scope of this PR.

Important Files Changed

Filename Overview
.github/workflows/codeql-analysis.yml Single-line runner change from ubuntu-latest to the ARC expression with fallback; no logic changes.
.github/workflows/snyk-analysis.yml Single-line runner change to match ARC pattern; pre-existing floating snyk/actions/node@master ref not touched by this PR.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Workflow Triggered] --> B{vars.RUNNER_LINUX_X64_4 set?}
    B -- Yes --> C[Self-hosted ARC Runner\n RUNNER_LINUX_X64_4 pool]
    B -- No --> D[GitHub-hosted\n ubuntu-latest]
    C --> E[Run Security Job\nCodeQL / Snyk]
    D --> E
    E --> F[Upload SARIF to\nGitHub Code Scanning]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Workflow Triggered] --> B{vars.RUNNER_LINUX_X64_4 set?}
    B -- Yes --> C[Self-hosted ARC Runner\n RUNNER_LINUX_X64_4 pool]
    B -- No --> D[GitHub-hosted\n ubuntu-latest]
    C --> E[Run Security Job\nCodeQL / Snyk]
    D --> E
    E --> F[Upload SARIF to\nGitHub Code Scanning]
Loading

Comments Outside Diff (1)

  1. .github/workflows/snyk-analysis.yml, line 24 (link)

    P2 Unpinned floating ref on a security action

    snyk/actions/node@master resolves to whatever commit master points to at the time the workflow runs. A compromised or accidentally broken push to that branch would immediately affect this security-scanning job with no change to this repository. Pinning to a specific commit SHA (or at minimum a release tag like @v0.4.0) eliminates that surface. This is pre-existing but worth addressing since this workflow is part of the supply-chain security posture.

Reviews (1): Last reviewed commit: "ci(snyk): run on self-hosted ARC runner ..." | Re-trigger Greptile

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