ci(windows): add Windows MSVC CI jobs - #2738
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Windows MSVC cache experimentsI ran the hosted
Conclusions
Current validation noteThe earlier single-job hybrid workflow is proven by the successful runs above. The new multi-job split currently receives an opaque GitHub |
|
Validation update: the opaque pre-job |
91fa94f to
2fdb6ec
Compare
|
Pausing this PR until the compute-driver refactor stack lands:
#2786 overlaps 8 of the 18 files changed here and establishes a cleaner Windows boundary by keeping first-party driver dependencies out of After the stack merges, the plan is to:
The branch is currently rebased onto |
|
Update to the earlier waiting note: #2786 has merged, but the stack was split before merge. The merged #2786 is only the compute-driver registry pre-factor and intentionally keeps first-party driver composition in The remaining relevant stack is now:
#2823 is the architectural change we were originally waiting for. It overlaps 8 of this PR’s 18 files, including the core/server configuration and Kubernetes-auth files where most of the Windows Plan: continue holding this PR until #2822 and #2823 land, then rebase, retain the Windows workflow/cache/prebuilt-Z3 work, update lint coverage for |
e5f0d01 to
5894ebb
Compare
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 0b8b8d4 |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 61016c7 |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 0bada73 |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 487bf9c |
|
Overall looks good minor a few nits. Is the expected runtime around ~10 minutes on branch checks? If so then no problem having them enabled by default. If it's longer, we might want to consider a Windows label. |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 7e7a8df |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 4eddd1d |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 59e995c |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 6cdf311 |
Summary
Run the supported Windows MSVC lint and test workload natively on x64 and ARM64 for pull requests and merge queues. Keep each architecture's Cargo and compiler caches warm on
main, then build both release binaries without publishing them.Related Issue
No issue required: localized CI infrastructure work following #2496.
Changes
tasks/windows.tomlwindows-2025(x64) andwindows-11-arm(ARM64) for pull-request mirrors and merge queuesmainand manual dispatches to seed the matching Cargo target and sccache namespacesopenshell-gateway.exeandopenshell.exeafter the cache-seed job succeeds onmainor a manual dispatchjdx/mise-actionanddtolnay/rust-toolchainWhy prebuilt Z3 on Windows
The previous bundled mode built Z3's C++ sources locally through CMake and MSBuild. That made clean Windows jobs substantially heavier and added another native build configuration, especially for x64-to-ARM64 cross-builds, without changing how OpenShell uses Z3. The
z3-sysgh-releasemode instead downloads the official architecture-matched Z3 4.16.0 static library and embeds it in the resulting OpenShell binary. This keeps the same pinned Z3 version and static-linking behavior while removing the Z3 source compilation from the critical CI path.CI supplies its read-only GitHub workflow token to avoid unauthenticated API throttling, and the extracted library/build output is retained by the Cargo target cache. The existing
Z3_LIBRARY_PATH_OVERRIDEpath remains available for developers who need to use a locally supplied Z3 build.Testing
mise run pre-commitcargo check -p openshell-prover --features prebuilt-z3cargo check -p openshell-server --features prebuilt-z3git diff --check.github/workflows/windows-msvc.ymlChecklist