diff-build: read the impacted set from a file, and fail when the query does - #1551
Conversation
…y does An impacted set of a few hundred labels inlined into the query expression exceeds the per-argument limit; bazel query fails before it runs, and the grep fallback read that as no tests, so the job ran nothing and passed. The queries now go through --query_file and the build and test invocations through --target_pattern_file, and a query bazel refuses fails the job. The test fixture disables commit signing for its own repo.
The queries and the build and test invocations move into build_and_test_impacted in the lib, so the test drives what CI runs with a bazel that records every call. The fixture's builds query is past the per-argument limit, which the 600-label set only reached through the script's own templates. --config=ci is pinned there by the deploy config test, as it is for the full-build path.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
1d4-web | 88a32d6 | Commit Preview URL Branch Preview URL |
Sep 14 2026, 05:31 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
iili | 88a32d6 | Commit Preview URL Branch Preview URL |
Sep 14 2026, 05:31 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
ast-lol | 88a32d6 | Commit Preview URL Branch Preview URL |
Sep 14 2026, 05:32 PM |
Review panelFour read-only agents, four lenses (correctness/control flow; shell/resource safety; tests/docs/CI; altitude). Each hunted then tried to refute. Aggregation re-checked survivors against HEAD Headline: land as-is. This is the right altitude for the #1550 false-green — file-fed query/build/test and fail-loud — and the harness actually kills both halves of that bug. No surviving findings. Verified clean
Soft notes (not blockers; fold or ignore)
No inline comments. Approve from here once asan finishes (or retries past rust-redist, same class as #1550). Review panel via Cursor |
|
CI update on |
With a few hundred impacted targets the inlined
set(...)exceeded the per-argument limit, bazel query died with "Argument list too long", and the|| truemeant for an empty grep swallowed it — the job ran zero tests and exited 0 (#1550's build-and-test did exactly this at 533 targets). The two queries now go through--query_fileand the build/test invocations through--target_pattern_file; a query bazel refuses fails the job. Covered inscripts/test-diff-buildwith a fake bazel and 600 long labels.