From 0403e495b472db962dd6aac44671dc39a949c653 Mon Sep 17 00:00:00 2001 From: homen Date: Fri, 11 Sep 2026 01:22:15 -0700 Subject: [PATCH] ci(nightly-judge): stop republishing stale verdicts on failed runs The judge step needs GOOGLE_GENERATIVE_AI_API_KEY and fails honestly without it, but the following upload step ran with if: always() and shipped the git-tracked docs/eval/gemini-media-judges/ folder as a per-run artifact. Every one of the 37 scheduled failures since 2026-08-05 therefore published the committed verdicts from 2026-07-04 as if they had just been produced. Upload only after a successful judge run. The missing-key failure itself stays red and unchanged. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/nightly-judge.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly-judge.yml b/.github/workflows/nightly-judge.yml index b23db04b..5dc42ae3 100644 --- a/.github/workflows/nightly-judge.yml +++ b/.github/workflows/nightly-judge.yml @@ -24,7 +24,10 @@ jobs: GOOGLE_GENERATIVE_AI_API_KEY: ${{ secrets.GOOGLE_GENERATIVE_AI_API_KEY }} run: npm run media:gemini-judge - name: Upload judge verdicts - if: always() + # Only after a successful judge run: docs/eval/gemini-media-judges/ is git-tracked, so + # uploading it with always() republished the committed (stale) verdicts as if freshly judged + # on every failed run (37/37 scheduled failures while the Gemini key was absent). + if: success() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: gemini-media-judge-${{ github.run_id }}