Skip to content

ci: cross-compile Windows Bazel clippy#20701

Merged
bolinfest merged 1 commit intomainfrom
pr20701
May 1, 2026
Merged

ci: cross-compile Windows Bazel clippy#20701
bolinfest merged 1 commit intomainfrom
pr20701

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented May 1, 2026

Why

#20585 moved the Windows Bazel test job to the cross-compile path, but the Windows Bazel clippy and verify-release-build jobs were still using the native Windows/MSVC-host fallback. Those two jobs became the slowest Windows PR legs, even though both are build-only signal and do not need to execute the resulting binaries.

What Changed

  • Switches the Windows Bazel clippy job from --windows-msvc-host-platform to --windows-cross-compile, so clippy build actions use Linux RBE while still targeting x86_64-pc-windows-gnullvm.
  • Switches the Windows Bazel verify-release-build job to --windows-cross-compile as well. This job only compiles cfg(not(debug_assertions)) Rust code under fastbuild, so it does not need a native Windows build host.
  • Keeps the old --skip_incompatible_explicit_targets behavior only for fork/community PRs without BUILDBUDDY_API_KEY, where run-bazel-ci.sh falls back to the local Windows MSVC-host shape.
  • Adds --windows-cross-compile support to .github/scripts/run-bazel-query-ci.sh, so target-discovery queries select the same ci-windows-cross config as the subsequent build.
  • Threads that option through scripts/list-bazel-clippy-targets.sh so the Windows clippy job discovers targets under the same platform shape as the subsequent clippy build.

Verification

Local checks:

bash -n .github/scripts/run-bazel-query-ci.sh
bash -n scripts/list-bazel-clippy-targets.sh
ruby -e 'require "yaml"; YAML.load_file(".github/workflows/bazel.yml"); puts "ok"'
RUNNER_OS=Linux ./scripts/list-bazel-clippy-targets.sh | grep -c -- '-windows-cross-bin$'
RUNNER_OS=Windows ./scripts/list-bazel-clippy-targets.sh --windows-cross-compile | grep -c -- '-windows-cross-bin$'

The Linux target-list check reported 0 Windows-cross internal test binaries, while the Windows cross target-list check reported 47, preserving the test-code clippy coverage shape from the existing Windows job.

@bolinfest bolinfest merged commit cd2760f into main May 1, 2026
26 checks passed
@bolinfest bolinfest deleted the pr20701 branch May 1, 2026 23:40
@github-actions github-actions Bot locked and limited conversation to collaborators May 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants