From 671238458c9bda24b5bad0a909b585c01cbc76c8 Mon Sep 17 00:00:00 2001 From: hector <42570491+majinghe@users.noreply.github.com> Date: Mon, 28 Sep 2026 18:46:12 +0800 Subject: [PATCH] ci: fail the pool lane when expected step markers are missing Merge the reviewed fix from pull request #8190. --- .github/workflows/rustfs-pool-expand-test.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/rustfs-pool-expand-test.yml b/.github/workflows/rustfs-pool-expand-test.yml index ee2a31d06..83677c3be 100644 --- a/.github/workflows/rustfs-pool-expand-test.yml +++ b/.github/workflows/rustfs-pool-expand-test.yml @@ -583,6 +583,25 @@ jobs: echo "pool test script reported a failure (step FAIL verdict or die() abort)" >&2 failed=1 fi + # A runner-level kill (step timeout) truncates the suite without a + # FAIL verdict or an [ERROR] line, so require every expected + # [POOL-STEP] marker to be present with PASS - missing markers mean + # the run was truncated, not green. This also closes the gap for + # standalone dispatches, where the chain driver's evidence + # validation does not run. + last_step=6 + if [ "${{ inputs.pools || '3' }}" = "3" ]; then + last_step=8 + if [ "${{ inputs.run_decommission != 'false' }}" = "true" ]; then + last_step=9 + fi + fi + for n in $(seq 1 "${last_step}"); do + grep -q "^\[POOL-STEP\] ${n} .* PASS" "${POOL_ARTIFACT_DIR}/pool-test.log" 2>/dev/null || { + echo "pool test log is missing [POOL-STEP] ${n} PASS (expected through step ${last_step}); the run was truncated" >&2 + failed=1 + } + done [ "${failed}" -eq 0 ] || exit 1 - name: Upload functional report to dashboard