Files
qwen-code/scripts
1a98854b76 test(ci): pin the disk-pressure collector revision and FULL_PAYLOAD run bodies (#15475)
* test(ci): pin the disk-pressure collector revision and FULL_PAYLOAD run bodies

Two deferred review findings from #10919 (issue #11032). Both are
assertion-only: no workflow file is touched.

The shared-prelude equality loop compares `test` and `lint_and_static` to
each other, so both jobs' disk-pressure collector moving to a different
`actions/upload-artifact` revision together leaves both serializations
equal and reports green. The SHA-format regex on `Upload Test Results
Artifact` is not a witness either: it accepts any 40-hex revision, on a
different step. Pin the literal revision instead, resolved per job
because the collector step carries the same name in both.

The FULL_PAYLOAD test pinned name, order and gate, but only the two
notices steps had a command body pinned: emptying `Run ESLint`'s `run:`
or repointing it at `true` left every suite green while a required check
stopped running the tool it is named for. Extend the existing loop with a
name -> load-bearing-substring map that is total over FULL_PAYLOAD, and
assert the substring rather than whitespace-exact text so reformatting
one of the multi-line blocks stays benign.

Verified by mutation in both directions. Against the pre-change suite,
moving the collector pin in both jobs, emptying `Run ESLint` and
repointing it at `true` all stayed green (44/44) -- that green was the
defect. With these assertions the same three mutations fail, and the
unmutated suite passes 45/45.

Refs #11032

Co-authored-by: Qwen-Coder <[email protected]>
Patrol-Run: qwen-issue-patrol/jmvmng32bjj

* test(ci): pin collector retention, payload gates and failure propagation

Addresses the four review findings on the pins this PR adds, all of them
the same class of gap: an assertion that proves a string is present but
not that the thing it guards still happens.

R1-1: `with.retention-days` was unpinned on both disk-pressure collectors,
so a coordinated edit reported green through the job-to-job equality loop
(the loop is blind to both sides moving together). Pinned per job as the
literal 14; the JUnit `Upload Test Results Artifact` step deliberately
retains 7, so no shared constant.

R1-2: map totality over FULL_PAYLOAD was only incidental — `toContain`
coerces a missing entry to the literal string "undefined", which a body
containing that word passes silently, and a stale key after a rename reads
as coverage that no longer exists. Asserted the key sets match instead.

R1-3: payload gates were filtered by a `ci_profile == 'full'` substring, so
appending any further `&&` clause dropped a step from the unattended
post-merge lane while every substring still matched. All 19 gates are
byte-identical, so pin the whole literal.

R1-4: containment proves the command is present, not that its failure
reaches the job status. Pinned `continue-on-error` absent and no
`|| true`/`|| :` in the body, plus `exit 1` in the settings-schema gate.
Both stay inside the loop: `Report test growth` and `Fetch incremental
lint history` set continue-on-error deliberately, and the helper-tests
retry legitimately uses `|| {`.

Each new assertion was shown to fail by mutating `.github/workflows/ci.yml`
one edit at a time: the six gap mutants pass 45/45 against the previous
head and each is killed by exactly the assertion added for it. The
one-sided retention control still trips the pre-existing equality loop, so
those greens were coordinated-edit blindness rather than a dead comparator.

Co-authored-by: Qwen-Coder <[email protected]>
Patrol-Run: qwen-pr-closeout/jmvmwqg38tp

---------

Co-authored-by: yiliang114 <[email protected]>
Co-authored-by: Qwen-Coder <[email protected]>
2026-10-25 12:50:50 +08:00
..
2025-08-27 15:23:21 +08:00