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>
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>
5894ebb to
c80a5ad
Compare
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 5dd3496 |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 5ece42d |
Final Windows validationHead
The first post-fix hosted run populated the current compiler inputs; the identical-head rerun verified that both the Cargo target archive and GHA sccache namespace are reusable. |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 917db6d |
|
🌿 Preview your docs: https://nvidia-preview-pr-2738.docs.buildwithfern.com/openshell |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
/ok to test 2b96238 |
|
Windows nextest update is validated at head 2b96238. Local native MSVC: 3,343 passed, 16 skipped. Hosted Windows: strict lint and nextest passed; the cache-population run completed in 22m29s and the follow-up cache-hit run completed in 7m58s. The follow-up restored the Cargo target cache and recorded 19 sccache hits / 2 misses (90.48%, 0 errors). The mise lockfile gate and all required CI gates are green. |
Summary
Run the supported Windows MSVC lint and test workload for pull requests and merge queues. Keep its Cargo and compiler caches warm on
main, then build the x64 release binaries without publishing them.Related Issue
No issue required: localized CI infrastructure work following #2496.
Changes
rust:lintandtest:rustonwindows-2025for pull-request mirrors and merge queuesmainand manual dispatches to seed the shared 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