From c792e7c2537520aeb86ae29f1c154a89ab67fb2b Mon Sep 17 00:00:00 2001 From: Dongyu Zhao Date: Wed, 22 Jul 2026 13:31:16 -0500 Subject: [PATCH] [Infra] Preserve benchmark failures through the metrics tee. The default run shell is bash -e without pipefail, so piping a benchmark suite into tee masks its failure with tee's zero exit and a broken benchmark still satisfies Benchmarks - Ready. The four teeing benchmark steps now use the explicit bash shell, which adds -o pipefail. Found by review on the ported tex-core copy (nouprax/tex-core#11). Co-Authored-By: Claude Fable 5 --- .github/workflows/ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39071f3..86cc3e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -987,6 +987,9 @@ jobs: name: c-ubuntu-latest-clang-ON-${{ github.sha }} path: build/ci-artifacts/c - name: Run C benchmark suite without building + # The explicit bash shell adds -o pipefail; the default run + # shell would let tee's zero status mask a benchmark failure. + shell: bash run: | mkdir -p build/pr-metrics-logs scripts/run-c-test-artifact.sh build/ci-artifacts/c benchmark \ @@ -1025,6 +1028,9 @@ jobs: name: kotlin-host-linux-x64-${{ github.sha }} path: build/ci-artifacts/kotlin-linuxX64 - name: Run Kotlin benchmark suite without building + # The explicit bash shell adds -o pipefail; the default run + # shell would let tee's zero status mask a benchmark failure. + shell: bash run: | mkdir -p build/pr-metrics-logs scripts/run-kotlin-host-test-artifact.sh \ @@ -1060,6 +1066,9 @@ jobs: name: es-test-${{ github.sha }} path: build/ci-artifacts/es - name: Run ES benchmark suite without building + # The explicit bash shell adds -o pipefail; the default run + # shell would let tee's zero status mask a benchmark failure. + shell: bash run: | mkdir -p build/pr-metrics-logs scripts/run-es-test-artifact.sh build/ci-artifacts/es node-benchmark \ @@ -1097,6 +1106,9 @@ jobs: name: swift-test-${{ github.sha }} path: build/ci-artifacts/swift - name: Run Swift benchmark suite without building + # The explicit bash shell adds -o pipefail; the default run + # shell would let tee's zero status mask a benchmark failure. + shell: bash run: | mkdir -p build/pr-metrics-logs scripts/run-swift-test-artifact.sh build/ci-artifacts/swift macos-benchmark \