From 32aece0bf8a80075725bad228d41f6e2e613e53e Mon Sep 17 00:00:00 2001 From: Jacob Lambert Date: Fri, 8 May 2026 11:09:35 -0700 Subject: [PATCH 1/2] [CI] Split baseline failure capture so it survives ninja exit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The baseline lit step combined `ninja check-amd-llvm-spirv | tee` and the `grep | sort > spirv-fails-baseline.txt` capture into a single shell script. Under bash -e + `set -o pipefail`, the non-zero ninja exit (any lit failure makes ninja return 1) aborted the script before the grep ran. With no baseline txt produced, the comment script fell through to the "baseline comparison unavailable" branch — see PR #187 where this was first observed. Split the capture into its own step, mirroring the working PR-head pattern. The lit step still exits non-zero on lit failures (it has continue-on-error: true), but the capture step runs independently via `if: always()` and writes the baseline file regardless. --- .github/workflows/spirv-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/spirv-ci.yml b/.github/workflows/spirv-ci.yml index e07faa133..fd185fb33 100644 --- a/.github/workflows/spirv-ci.yml +++ b/.github/workflows/spirv-ci.yml @@ -142,8 +142,15 @@ jobs: cmake -G Ninja -S llvm-project/llvm -B build ninja -C build check-amd-llvm-spirv 2>&1 \ | tee build/check-amd-llvm-spirv-baseline.log + + - name: Capture baseline translator failures + # Split from the lit step so a non-zero ninja exit (lit failures + + # set -o pipefail under bash -e) doesn't skip this grep. + if: github.event_name == 'pull_request' && always() + run: | grep -oE '^FAIL: LLVM_SPIRV :: \S+' build/check-amd-llvm-spirv-baseline.log \ | sort -u > build/spirv-fails-baseline.txt || true + echo "Baseline failures:"; cat build/spirv-fails-baseline.txt - name: Post translator lit summary to PR if: github.event_name == 'pull_request' && always() From d431492b5fa6613688958198a1d167ba95616a25 Mon Sep 17 00:00:00 2001 From: Jacob Lambert Date: Fri, 8 May 2026 11:33:21 -0700 Subject: [PATCH 2/2] [CI] Drop workflow_dispatch trigger so required-check rule matches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The amd-staging-psdb ruleset requires context "SPIRV CI - amd-staging / Build & Test". When a workflow has multiple on: triggers (pull_request + workflow_dispatch), GitHub disambiguates the emitted check context with a trailing event suffix — actual context becomes "SPIRV CI - amd-staging / Build & Test (pull_request)", which the rule never matches. Result: required check stays "Pending — Required" forever, blocks non-admin merges. Drop workflow_dispatch (we never used it in practice — pull_request's synchronize/reopened types already cover any retrigger we'd want via the PR UI). --- .github/workflows/spirv-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/spirv-ci.yml b/.github/workflows/spirv-ci.yml index fd185fb33..7921aa527 100644 --- a/.github/workflows/spirv-ci.yml +++ b/.github/workflows/spirv-ci.yml @@ -15,7 +15,6 @@ on: pull_request: branches: [amd-staging] types: [opened, synchronize, reopened, labeled] - workflow_dispatch: permissions: contents: read