Skip to content

ci: switch all runners to standard free runners (temporary, unblock spending limit)#3233

Merged
borisbat merged 1 commit into
masterfrom
bbatkin/ci-free-runners
Jun 21, 2026
Merged

ci: switch all runners to standard free runners (temporary, unblock spending limit)#3233
borisbat merged 1 commit into
masterfrom
bbatkin/ci-free-runners

Conversation

@borisbat

Copy link
Copy Markdown
Collaborator

Why

The org Actions spending limit was hit, which stops the dascriptrunners larger-runner group — every -fat / -xlarge lane sits queued indefinitely (this is what's been blocking #3231 and everything else).

daScript is a public repo, so standard GitHub-hosted runners are free / unlimited; only the larger -fat / -xlarge runners are billed (the docs are explicit: "Larger runners are always charged for, even when used by public repositories or when you have quota available"). Swapping every workflow to the standard equivalents unblocks CI at zero cost while billing is sorted.

What

Label swaps across all workflows (llvm_release.yml already used standard runners — untouched):

from to
ubuntu-latest-fat ubuntu-latest
windows-latest-fat windows-latest
ubuntu-24.04-arm-fat ubuntu-24.04-arm
macos-15-xlarge macos-15
macos-26-xlarge macos-26
macos-latest-xlarge macos-latest

10 files, 37/37 line swaps (string-only; no structural changes).

Speed impact: ~none

Measured win32 build, bigger vs smaller runner: Debug long-pole 16.3m vs 16.2m (identical — Debug is link/IO-bound, not core-bound). Release was faster on the bigger runner but runs parallel to Debug, so no wall-clock win. So this switch is speed-neutral on the critical path while cutting cost 4–7× and freeing capacity.

Caveats (this is temporary)

  • Resources differ: standard runners have less disk/RAM than the -fat/-xlarge ones. Heavy lanes (LLVM, vcpkg/openssl, AOT) may hit disk/memory limits — that's part of "see how it goes." If a lane fails on resources, we either trim its disk usage or keep that one lane on a paid runner.
  • macos-26: assumed the standard (non-xlarge) label exists alongside macos-26-xlarge. If not, that lane will error on "no matching runner" and we'll map it to macos-latest.
  • Revert plan: switch back to the larger runners once the payment/spending limit is resolved.

This PR's own CI exercises the new standard runners (pull_request uses the changed workflow files), so it's self-validating — if it goes green, free runners work.

🤖 Generated with Claude Code

…nners

The org Actions spending limit was hit, stopping the dascriptrunners larger-
runner group. daScript is a public repo, so standard GitHub-hosted runners
are free (unlimited); only the -fat/-xlarge larger runners are billed (always,
even on public repos). Swap every workflow's runner labels to the standard
equivalents to unblock CI at zero cost while billing is addressed:

  ubuntu-latest-fat            -> ubuntu-latest
  windows-latest-fat           -> windows-latest
  ubuntu-24.04-arm-fat         -> ubuntu-24.04-arm
  macos-15-xlarge              -> macos-15
  macos-26-xlarge              -> macos-26
  macos-latest-xlarge          -> macos-latest

Speed-neutral: measured win32 Debug long-pole was 16.3m on the bigger runner
vs 16.2m on the smaller one (Debug is link/IO-bound, not core-bound), while
the bigger runner cost 4-7x and capped capacity. Temporary — switch back once
billing is resolved. llvm_release.yml already used standard runners (untouched).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 20, 2026 23:51

Copilot AI left a comment

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.

Pull request overview

This PR updates GitHub Actions workflows to use standard GitHub-hosted runner labels instead of billed “larger runner” labels, to unblock CI when the org Actions spending limit prevents the larger runner group from starting jobs.

Changes:

  • Replaced *-fat runner labels with standard ubuntu-latest / windows-latest (and updated related inline comments).
  • Replaced macos-*-xlarge runner labels with standard macos-* equivalents.
  • Updated ARM runner label from ubuntu-24.04-arm-fat to ubuntu-24.04-arm where used.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/wasm_build.yml Switches Linux/macOS/Windows runners in wasm jobs/matrix to standard labels.
.github/workflows/release.yml Uses standard runners for release build matrix (including ARM + macOS 26).
.github/workflows/pages.yml Moves Pages build/deploy job to ubuntu-latest.
.github/workflows/nightly_daspkg_index.yml Moves nightly index sweep to ubuntu-latest.
.github/workflows/msvc.yml Updates Windows MSVC analysis workflow to windows-latest and fixes related comment.
.github/workflows/extended_checks.yml Switches extended-check matrix runners to standard labels.
.github/workflows/doc.yml Moves doc build job to ubuntu-latest.
.github/workflows/cpp_mcp_release.yml Updates non-PR matrix JSON runner for linux-arm64 to ubuntu-24.04-arm.
.github/workflows/codeql.yml Moves CodeQL job to ubuntu-latest.
.github/workflows/build.yml Updates all jobs/matrix entries referencing *-fat / *-xlarge to standard labels (plus related comment text).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@borisbat borisbat merged commit 523b10a into master Jun 21, 2026
35 checks passed
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.

2 participants