* ci: retain raw JUnit reports for same-repo runs
* ci: keep the retained-report upload advisory and pin its guards
Review follow-up on e7f6f7ae45 (qwen-code-review-bot R1-1, R1-6, R1-4).
R1-1: widening this step from fork-only to every full-profile run also widened
its blast radius. A transient artifact-service failure now fails the step and
reddens Test (ubuntu-latest, Node 22.x) on a suite whose tests all passed, and
on a push to main that red also reaches main-ci-failure-issue.yml, which files
an issue about a failure that is not a test failure. The publisher two steps
above is already advisory for exactly this reason, so this matches the sibling
rather than inventing a policy. continue-on-error: true, asserted in the
existing advisory-vs-blocking case.
R1-6: the uses: guard accepted any ref, so relaxing the pin to a mutable tag
survived green. Tightened to a 40-hex SHA, the shape
main-ci-failure-issue-workflow.test.js already uses for actions/checkout. The
trailing "# v7.0.1" comment sits outside the parsed value, so anchoring the
regex to the value is sufficient.
R1-4: the new evaluate() injected hand-built stubs, so an unmodelled context
term read as undefined and compared silently -- github.event.pull_request.draft
!= true evaluates true and every row stays green while asserting nothing about
the new term. gateRunsOn and timeoutMinutesOn in this same file already throw
on residual context terms; evaluate now does too, reusing gateRunsOn's message
spelling rather than adding a third.
Each guard was mutation-checked separately on this branch, one mutant at a
time, with the files restored byte-identically afterwards:
uses: -> actions/upload-artifact@v7 1 failed | 43 passed (44)
AssertionError: expected 'actions/upload-artifact@v7' to match /^actions.../
continue-on-error: true removed 1 failed | 43 passed (44)
AssertionError: expected undefined to be true
loud() neutered to identity 1 failed | 43 passed (44)
AssertionError: expected [Function] to throw an error
Clean tree: Tests 44 passed (44), rc=0. check-ci-budget.mjs rc=0
("PR-stage CI budget holds") -- no timeout-minutes or workflow change here.
Co-authored-by: Qwen-Coder <[email protected]>
Patrol-Run: qwen-pr-closeout/jmvlhalgps3
---------
Co-authored-by: Qwen-Coder <[email protected]>