ci: migrate all workflows to Ubicloud (Linux + Windows, 8-core)

Switch every `runs-on` in this repo to Ubicloud so CI has a single billing
surface, consistent capacity, and 4x more cores on the workloads that were
previously stuck on free `ubuntu-latest` (2 cores). Windows uses Ubicloud's
Windows pool too — `ubicloud-standard-8-windows` — so the queued-forever
problem with GitHub's `windows-latest-8-cores` paid larger runner (org-level
larger-runner billing not enabled) goes away.

Workflows touched (9):
- evals.yml, evals-periodic.yml, ci-image.yml — bump default + matrix from
  `ubicloud-standard-2` to `ubicloud-standard-8`. The one matrix entry that
  was already on -8 stays.
- windows-free-tests.yml — `ubicloud-standard-2-windows` → `ubicloud-standard-8-windows`.
- make-pdf-gate.yml — matrix `ubuntu-latest` → `ubicloud-standard-8`. macOS
  entry preserved; the poppler-install `if: matrix.os` conditional swaps to
  match the new label.
- actionlint.yml, pr-title-sync.yml, skill-docs.yml, version-gate.yml —
  `ubuntu-latest` → `ubicloud-standard-8`.

.github/actionlint.yaml registers all four Ubicloud labels in one place:
- ubicloud-standard-2
- ubicloud-standard-8
- ubicloud-standard-2-windows  (the v1.38.0.0 windows-free-tests target)
- ubicloud-standard-8-windows  (this PR's windows-free-tests target)

Removed the duplicate `actionlint.yaml` at the repo root that I accidentally
created in the prior commit — actionlint only reads `.github/actionlint.yaml`,
so the root file was dead weight.

CHANGELOG entry updated: a single "all Ubicloud" sentence in the narrative
plus a metrics-row covering the runner pool change, and the itemized line
expanded to enumerate the 9 affected workflows. The previously-orphaned
"Itemized changes" line about just `windows-free-tests.yml` is replaced.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-05-14 20:10:50 -07:00
parent bd15dfc985
commit 818bb02f28
12 changed files with 24 additions and 25 deletions
+5 -5
View File
@@ -8,10 +8,10 @@ name: Windows Free Tests
# targeted resolver tests that exercise the Bun.which-based claude binary
# resolution + the GSTACK_CLAUDE_BIN override path on Windows.
#
# Runner: Ubicloud Windows runner (`ubicloud-standard-2-windows`). Matches
# the Ubicloud Linux runner the evals workflow already uses, so billing
# stays consolidated under one provider. Swap to `windows-latest` to revert
# to GitHub's free runner if Ubicloud has Windows capacity issues. Note
# Runner: Ubicloud Windows runner (`ubicloud-standard-8-windows`). All CI
# in this repo runs on Ubicloud (Linux + Windows) for billing consolidation
# and consistent capacity. Swap to `windows-latest` to revert to GitHub's
# free runner if Ubicloud has Windows capacity issues. Note
# `windows-latest-8-cores` (GitHub paid larger runner) sat queued because
# org-level larger-runner billing wasn't enabled.
#
@@ -36,7 +36,7 @@ jobs:
windows-free-tests:
# Ubicloud Windows runner (same provider as the Linux evals workflow).
# To revert: swap to `windows-latest` (GitHub's free 4-core Windows runner).
runs-on: ubicloud-standard-2-windows
runs-on: ubicloud-standard-8-windows
timeout-minutes: 15
steps: