diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index d48d6a48..00ebf695 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -59,6 +59,29 @@ jobs: run: npm run build working-directory: frontend + # ── Prerender output is exactly the public help page ─────────────────── + # SvelteKit prerender + crawl follows nav links and bakes "redirect to + # /login" HTML for every protected route, served BEFORE runtime hooks + # (see #514). With `crawl: false` only the explicit entry should land + # in build/prerendered/. Anything else is a regression — fail the build. + - name: Assert prerender output is only /hilfe/transkription + run: | + cd frontend + set -e + extra=$(find build/prerendered -type f \ + -not -path 'build/prerendered/hilfe/*' \ + -not -name '*.br' -not -name '*.gz' \ + || true) + if [ -n "$extra" ]; then + echo "FAIL: unexpected prerendered files (would shadow runtime hooks):" + echo "$extra" + exit 1 + fi + # And the help page must still be there. + test -f build/prerendered/hilfe/transkription.html \ + || { echo "FAIL: /hilfe/transkription.html missing from prerender output"; exit 1; } + echo "PASS: only /hilfe/transkription.html prerendered." + - name: Upload screenshots if: always() uses: actions/upload-artifact@v4