ci: switch all runners to standard free runners (temporary, unblock spending limit)#3233
Merged
Conversation
…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>
Contributor
There was a problem hiding this comment.
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
*-fatrunner labels with standardubuntu-latest/windows-latest(and updated related inline comments). - Replaced
macos-*-xlargerunner labels with standardmacos-*equivalents. - Updated ARM runner label from
ubuntu-24.04-arm-fattoubuntu-24.04-armwhere 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.
This was referenced Jun 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The org Actions spending limit was hit, which stops the
dascriptrunnerslarger-runner group — every-fat/-xlargelane sitsqueuedindefinitely (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/-xlargerunners 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.ymlalready used standard runners — untouched):ubuntu-latest-fatubuntu-latestwindows-latest-fatwindows-latestubuntu-24.04-arm-fatubuntu-24.04-armmacos-15-xlargemacos-15macos-26-xlargemacos-26macos-latest-xlargemacos-latest10 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)
-fat/-xlargeones. 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 alongsidemacos-26-xlarge. If not, that lane will error on "no matching runner" and we'll map it tomacos-latest.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