perf(ci): parallelize and cache Windows compatibility checks (#9587)

* perf(ci): parallelize and cache Windows compatibility checks

* test(ci-plan): require both Windows jobs when bundle routing is selected
This commit is contained in:
luo jiyin authored and GitHub committed 2026-09-19 15:23:52 +08:00
1 parent c71c35624b
commit ba6b74beea
4 files changed
+76 -13

No files matched your search

+16 -1
View File
@@ -37,7 +37,7 @@ test("stable Rust, Agent and overall gates always inspect selected upstream resu
for (const [name, mode, dependencies] of [["rust", "rust", ["fast-checks", "rust-fmt-clippy", "rust-test"]],
["agents", "agents", ["fast-checks", "agent-checks", "agent-rust", "agent-go", "agent-integration", "agent-java"]],
["frontend", "frontend", ["frontend-checks", "frontend-typecheck", "frontend-test"]],
["ci", "all", ["rust", "agents", "frontend", "packages", "windows-win7-bundle", "duckdb-windows-driver", "nix-packaging"]]]) {
["ci", "all", ["rust", "agents", "frontend", "packages", "windows-standard-check", "windows-win7-bundle", "duckdb-windows-driver", "nix-packaging"]]]) {
const content = job(name);
assert.match(content, /if: always\(\)/);
assert.ok(content.includes(`node .github/scripts/ci-gate.mjs ${mode}`));
@@ -88,6 +88,21 @@ test("DuckDB Windows builds persist Rust and C++ compiler results", () => {
assert.ok(content.includes('version: "v0.16.0"'));
});
test("standard Windows compatibility checks run separately with sccache", () => {
const standard = job("windows-standard-check");
assert.ok(standard.includes("needs.changes.outputs.windows_win7_bundle == 'true'"));
assert.ok(standard.includes("RUSTC_WRAPPER: sccache"));
assert.ok(standard.includes('SCCACHE_GHA_ENABLED: "true"'));
assert.ok(standard.includes("SCCACHE_GHA_VERSION: windows-standard-v1"));
assert.ok(standard.includes("fc920bf0ec8de6ee65d409111f7ec508035751ba"));
assert.ok(standard.includes('version: "v0.16.0"'));
assert.ok(standard.includes("cargo check --locked --package dbx --no-default-features --target x86_64-pc-windows-msvc"));
assert.ok(standard.includes("sccache --show-stats"));
const win7 = job("windows-win7-bundle");
assert.doesNotMatch(win7, /x86_64-pc-windows-msvc|Setup Rust for standard Windows|RUSTC_WRAPPER: sccache/);
});
test("the planner uses the exact event base and preserves a single workflow cancellation scope", () => {
const changes = job("changes");
assert.ok(changes.includes("github.event.pull_request.base.sha || github.event.before"));