Skip to content

feat(node-ci): optional runner input for self-hosted runners - #38

Merged
WomB0ComB0 merged 1 commit into
mainfrom
ci/self-hosted-runner-input
Jul 28, 2026
Merged

feat(node-ci): optional runner input for self-hosted runners#38
WomB0ComB0 merged 1 commit into
mainfrom
ci/self-hosted-runner-input

Conversation

@WomB0ComB0

@WomB0ComB0 WomB0ComB0 commented Jul 27, 2026

Copy link
Copy Markdown
Member

Adds an optional runner input (default ubuntu-latest) to the reusable node-ci.yml, so a caller can route the job onto a self-hosted runner via runner: self-hosted.

Backward-compatible — omitting the input keeps ubuntu-latest, so every existing consumer is unchanged.

Why: when GitHub-hosted Actions minutes are exhausted org-wide, every hosted job fails at startup (zero steps). A self-hosted runner sidesteps that. Consumers wire the input to a repo/org variable (e.g. runner: ${{ vars.CI_RUNS_ON || 'ubuntu-latest' }}) so it toggles without editing workflows.

Consumed by resq-software/research (see its companion ci/self-hosted-runner-option PR). Same pattern can extend to security-scan.yml as a follow-up.

Summary by CodeRabbit

  • Chores
    • Added configurable CI runner selection for workflow callers.
    • Preserved Ubuntu as the default execution environment.

New optional input 'runner' (default ubuntu-latest) sets runs-on, so a caller can route the reusable node CI onto a self-hosted runner (e.g. when GitHub-hosted minutes are exhausted) by passing runner: self-hosted. Backward-compatible: omitting it keeps ubuntu-latest, so every existing consumer is unchanged.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e56c8c31-18ac-4526-9e1c-3337c6da3582

📥 Commits

Reviewing files that changed from the base of the PR and between 0237347 and 723eb53.

📒 Files selected for processing (1)
  • .github/workflows/node-ci.yml

📝 Walkthrough

Walkthrough

The reusable Node CI workflow adds a runner input with an ubuntu-latest default and uses that input for the ci job’s runs-on value.

Changes

Node CI runner configuration

Layer / File(s) Summary
Runner input and job wiring
.github/workflows/node-ci.yml
Adds the runner workflow input and changes the CI job to use ${{ inputs.runner }} instead of a hardcoded runner.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding an optional runner input to node-ci for self-hosted runners.
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
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/self-hosted-runner-input

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.

@WomB0ComB0
WomB0ComB0 merged commit 94eec9b into main Jul 28, 2026
8 checks passed
@WomB0ComB0
WomB0ComB0 deleted the ci/self-hosted-runner-input branch July 28, 2026 21:37
WomB0ComB0 added a commit that referenced this pull request Jul 30, 2026
…ers (#39)

Mirrors node-ci.yml's `runner` input (#38). All 9 scan jobs (vet, codeql,
gitleaks, osv, dependency-review, snyk, semgrep, zizmor, actionlint) were
hardcoded to `ubuntu-latest`; when GitHub-hosted runners are unavailable
(exhausted minutes) every scan fails with no runner assigned.

Adds a `runner` string input (default `ubuntu-latest`, fully backward
compatible — existing callers are unchanged) and switches every job to
`runs-on: ${{ inputs.runner }}`. Callers on self-hosted infra pass
`runner: self-hosted`.

harden-runner stays in `egress-policy: audit` on every job, which is
self-hosted-safe (monitors rather than blocks).
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