Conversation
Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the Windows CI workflow to reduce cold-start latency and improve reliability by reusing cached Bazel/Bazelisk artifacts across runs, while also reshaping the Windows CI build/test flow and collecting Bazel profiles for analysis.
Changes:
- Persist Bazelisk’s downloaded Bazel binaries across workflow runs via
BAZELISK_HOME+actions/cache. - Add a Bazel disk cache restore/save step and pass
--disk_cacheto fetch/test/build commands. - Split Windows CI into fastbuild test coverage + a narrow
--config=optsmoke build, and emit/upload a Bazel profile + analysis output.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
python/tests/ci_windows_cppopts_test.py |
Updates assertions to match the new Windows CI command structure (fastbuild tests, limited opt build, profile emission, cache usage). |
.github/workflows/ci_windows.yml |
Adds Bazelisk + Bazel disk caching, adjusts Windows CI target scope and compilation modes, and captures/analyzes Bazel profiles. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…argets as separate args Previously, $arr passed to a native command in PowerShell joined array elements into a single space-separated string, so Bazel received the full target list as one invalid package name. Switching to @arr splatting passes each element as a distinct argument across all PowerShell versions. Also use -split '\s+' with a non-empty filter to tolerate any whitespace variation in the env var value. Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
Co-authored-by: tameware <4573152+tameware@users.noreply.github.com>
|
@zzcgumn, the Windows CI was sometimes timing out at 20 minutes. I asked Copilot to try to make it faster. This is what it came up with, but I'm not certain it's faster! I can ask Copilot for additional speedups. |
|
Interesting idea but I suggest we leave for 3.2.0. I am thinking that we want to check if similar caching schemes can speed Linux and macOS CI runs too. |
|
Postponed for now. Will consider for v3.2. |
Windows CI was repeatedly downloading the Bazel binary via Bazelisk, adding avoidable latency and making runs more sensitive to transient network/DNS failures. This change adds Bazel disk-cache and persists the cache between workflow runs while leaving existing Bazel behavior intact.
What changed
BAZELISK_HOME: ${{ github.workspace }}\.bazel-cache\bazeliskactions/cachestep to restore/save Bazelisk downloads using:windows-bazelisk-cache-${{ runner.os }}-${{ hashFiles('.bazelversion') }}Why this keying strategy
.bazelversioninvalidates cache when Bazel version changes.Also changes the Windows CI test/build target scope and adds profile capture/analysis.