Skip to content

ci(windows): run Windows MSVC tests on every PR and seed the cache from main - #4879

Open
krishicks wants to merge 2 commits into
mainfrom
ci/windows-msvc-every-pr/krishicks
Open

krishicks wants to merge 2 commits into
mainfrom
ci/windows-msvc-every-pr/krishicks

Conversation

@krishicks

Copy link
Copy Markdown
Collaborator

Summary

Run the Windows MSVC lint and test job on every PR instead of only on PRs labeled test:windows, and seed its Rust cache from main so PR runs start warm.

Related Issue

None. Exempt from the issue requirement by maintainer decision. Background: main broke on Windows across five PRs before an unrelated labeled PR exposed 15 failing tests (#4861, fixed by #4862).

Changes

  • Run the PR lint and test job for every pull-request mirror; the PR gate still checks that the mirrored commit is the PR head.
  • Add main to the push triggers and run the cache-seed job there. Failures on main report normally; the windows branch stays advisory.
  • Do not cancel in-progress main runs, so each seed finishes despite frequent merges.
  • PR runs restore the Rust cache but no longer save it. GitHub scopes caches by branch, so a PR's cache is unusable elsewhere and saving it only evicts the main cache.
  • Keep release-binary builds on the windows branch only.
  • Update CI.md, the build-openshell-mxc-windows skill, the principal engineer reviewer agent, and the gator gate skill (and its test assertions) to drop the test:windows label.

The Windows checks stay non-required for merging. Once warm-cache run times are known, they can be considered for the required set.

Testing

  • actionlint reports no new findings for windows-msvc.yml (the three PowerShell SC2086 notes also appear on main)
  • markdownlint-cli2 passes on the changed Markdown files
  • Updated gator assertions match the new skill and agent text
  • Windows MSVC jobs run on this PR without the test:windows label

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

…om main

Prior to this change, the Windows MSVC lint and test job ran only on
pull-request mirrors labeled test:windows. Most PRs never ran it, and
main broke on Windows across five PRs before an unrelated labeled PR
exposed 15 failing tests (#4861). The job also ran cold every time: the
cache-seed job ran only on pushes to the windows branch, and GitHub
scopes caches by branch, so pull-request mirrors could never restore
that cache. Rust cache hits were 0% and each run took about 40 minutes.

Now, every pull-request mirror runs the Windows lint and test job
without a label. Pushes to main run the cache-seed job, which reports
failures normally there, so a Windows break on main shows up within one
merge. Main runs are not cancelled by later pushes, so each seed
finishes. Pull-request runs restore the main cache but no longer save
their own, since no other branch can restore it and saving it only
evicts the main cache. Release-binary builds stay on the windows
branch. The checks remain non-required for merging.

CI.md, the Windows build skill, the principal engineer reviewer agent,
and the gator gate skill no longer refer to the test:windows label.

Signed-off-by: Kris Hicks <khicks@nvidia.com>
Signed-off-by: Kris Hicks <khicks@nvidia.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant