feat(windows-ci): self-provisioning toolchain for the shared unom/infra runner
The Windows CI runner (home-windows-runner-1, vmid 210) is now provisioned/owned by unom/infra and can be rebuilt or joined by additional windows-amd64-labeled runners at any time - a manually-dispatched provisioning workflow has no way to target a specific runner instance, so it could land on an already-provisioned box instead of the one that needed it. Replace windows-drivers-provision.yml / windows-punktfunk-provision.yml with scripts/ci/ensure-windows-toolchain.ps1, a shared idempotent pre-flight (WDK/cargo-wdk, FFmpeg, Inno Setup, ARM64 rustup target) that every Windows workflow now runs at job start - a fast no-op once already provisioned, so any runner self-heals on first real use. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Idempotent pre-flight for punktfunk's Windows CI dependencies: WDK + cargo-wdk (driver builds),
|
||||
# FFmpeg x64/ARM64 trees, Inno Setup, and the aarch64-pc-windows-msvc rustup target. Run at the
|
||||
# start of every Windows CI job so ANY runner - freshly built from unom/infra's windows-runner/
|
||||
# template, rebuilt, or a new one added later - self-provisions on first real use, instead of
|
||||
# needing a human to remember to dispatch a separate provisioning workflow first (and instead of
|
||||
# racing which runner a manually-dispatched provisioning workflow happens to land on, when more
|
||||
# than one Windows runner shares the windows-amd64 label).
|
||||
#
|
||||
# Each underlying script already does its own existence checks (Test-Path/Get-Command) before
|
||||
# installing anything, so this is a fast no-op on a runner that's already fully provisioned - the
|
||||
# only cost is on a genuinely fresh box, where it's the first job's problem to pay once.
|
||||
$ErrorActionPreference = "Stop"
|
||||
trap {
|
||||
Write-Host "FATAL: $_"
|
||||
Write-Host $_.ScriptStackTrace
|
||||
exit 1
|
||||
}
|
||||
|
||||
$ciDir = $PSScriptRoot
|
||||
& "$ciDir\provision-windows-wdk.ps1"
|
||||
& "$ciDir\provision-windows-punktfunk-extras.ps1"
|
||||
Reference in New Issue
Block a user