ci: Ubicloud is the main CI — retire the Hetzner VM workflows

ci-ubicloud.yml (cherry-picked from the ubicloud-ci experiment branch, green
on run 27375556034: 291 wx + 38 kicad tests in 1h52m) now triggers on main
pushes and replaces ci-full-build.yml and ci.yml. The Hetzner flow needed
create/delete-VM jobs, a PAT + hcloud token, and a shared one-slot
concurrency lock; the Ubicloud runner is a plain runs-on label and finished
faster end-to-end. wasm-opt-bench.yml stays (dispatch-only Hetzner bench
harness, unrelated to CI).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Istvan Matejcsok 2026-06-12 12:43:15 +02:00
commit e932530afb
3 changed files with 8 additions and 341 deletions

View file

@ -1,16 +1,16 @@
# EXPERIMENT: same full build + e2e as ci-full-build.yml, but on a Ubicloud
# runner instead of an ephemeral Hetzner VM. Ubicloud runners are plain
# runs-on labels — no create/delete-runner jobs, no shared one-slot lock.
# Triggered ONLY on the ubicloud-ci branch (and manual dispatch) so it never
# competes with the Hetzner main CI. ubicloud-standard-30 (x86, 30 vcpu) is
# the closest parity to the Hetzner ccx53 (32 cores) and matches the arch the
# e2e screenshot baselines were captured on.
# The main-branch CI: full KiCad WASM build (all 6 tools, Binaryen 130) +
# wxWidgets e2e (291 tests) + KiCad e2e (38 tests) on a Ubicloud runner.
# Replaced the ephemeral-Hetzner-VM workflows (ci-full-build.yml / ci.yml,
# removed 2026-06-12): Ubicloud runners are plain runs-on labels — no
# create/delete-runner jobs, no shared one-slot lock — and benchmarked
# faster end-to-end. Proven green: run 27375556034 (329 tests, 1h52m).
# ubicloud-standard-30 (x86, 30 vcpu) ≈ the old Hetzner ccx53.
name: CI full build + e2e (Ubicloud)
on:
push:
branches: ["ubicloud-ci"]
branches: ["main", "ubicloud-ci"]
# docs-only commits must not burn a paid runner slot
paths-ignore: ["docs/**", "**.md"]
workflow_dispatch: