ci(build): flip windows lane to self-hosted VM217 (fork-gated) - #617
Merged
Conversation
VM217 (c2pool-windows-217) toolchain probe run 28679257030 is green across Python 3.12, Conan 2, CMake, Git and MSVC/VS 2022 C++ build tools. Route internal PRs/pushes to the self-hosted runner via the #439 fork-gate expr; fork PRs keep GitHub-hosted windows-2022. setup-python gated to github-hosted so VM217 uses its pre-provisioned interpreter. Last GitHub-hosted C++ lane.
VM217 self-hosted has Python 3.12 pre-provisioned; the ungated setup-python step re-extracted python via setup.ps1 and tripped a machine ExecutionPolicy SecurityError (PSSecurityException). Gate it to runner.environment == github-hosted, matching every Linux lane, so self-hosted uses the pre-provisioned toolchain.
…h on service PATH) The windows job self-hosted canary (run 28679621680, 9280bc1) passed the gated setup-python skip but failed the next step: Install Conan 2 ran shell:bash and VM217s runner-service account has no bash on PATH -> "bash: command not found". Conan 2 is provisioned on VM217 (probe run 28679257030). Convert the step to shell:powershell, which resolves on both the self-hosted lane and the fork-fallback windows-2022 lane.
VM217 Windows PowerShell runs at ExecutionPolicy=Restricted; the runner cannot source its temp .ps1 command files (PSSecurityException / UnauthorizedAccess), which failed the Install Conan step on run 28679851820. Set a job-level defaults.run.shell to the Bypass form proven green by probe 28679257030, so all PowerShell steps (Install Conan, Detect Conan profile, Conan install, Build secp256k1, Verify binary) inherit it; the two cmd steps override locally.
…to GITHUB_PATH VM217 does not expose conan on the runner-service PATH; the pre-provisioned assumption caused CommandNotFoundException at Install Conan 2 (run 28680092936). Install unconditionally and prepend the pip Scripts dir(s) via GITHUB_PATH so this step and Detect profile / Conan install resolve the binary.
VM217 runner-service PATH exposes python (3.12) but not the bare pip launcher, so "pip install" hit CommandNotFoundException. Invoke pip via its module entrypoint, which resolves through the already-working python.
VM217 runner-service PATH exposes neither conan nor a bare python (setup-python is gated off for self-hosted), so python -m pip hit CommandNotFoundException. Resolve an interpreter ourselves (py -> python3 -> python) with where.exe diagnostics on miss, and fix the unquoted sysconfig.get_path(scripts) NameError.
frstrtr
force-pushed
the
ci-steward/windows-vm217-flip
branch
from
July 3, 2026 22:46
4295276 to
8c181ba
Compare
frstrtr
added a commit
that referenced
this pull request
Jul 4, 2026
The concurrency group is per-ref (github.workflow-github.ref). On master, every merge is a push to the same ref, so back-to-back merges share one group and cancel-in-progress kills the prior merge in-flight rollup before it verifies green. #626 (concurrency-groups) bit the #617 web-static lane exactly this way: the last completed master CI run (28692641464) shows Web-static verify=cancelled while Windows x86_64=success. Gate cancel-in-progress to non-push events only. PR churn (rapid re-pushes to a PR ref) still de-dupes and sheds the shared-pool OOM load that #626 targeted; master/release/tag runs always run to completion so a merged SHA is actually verified. Fenced to the concurrency block, no job changes. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
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.
Flips the
windowsbuild.yml job from GitHub-hostedwindows-2022to self-hosted c2pool-windows-217 (VM217) for internal PRs/pushes, with a fork fallback towindows-2022.Evidence: toolchain probe run 28679257030 is green across all steps: Python 3.12, Conan 2, CMake, Git, MSVC/VS 2022 C++ build tools. Runner online with labels
[self-hosted, X64, Windows, c2pool-build].Changes:
runs-on-> ci(build): full self-hosted switch — Linux-905 (32c) + macOS M4/Intel + Windows-217, fork-gated #439 fork-gate expr: internal ->[self-hosted, Windows, X64, c2pool-build], forks ->windows-2022.actions/setup-python@v6gated torunner.environment == github-hosted(VM217 has Python pre-provisioned).runner.environment(unchanged).Completes the #439 self-hosted migration -- Windows was the last GitHub-hosted C++ lane. Merge-gated on operator push-approval.