From 84706810ab4bae8e9a99816b0b76aaf04d181649 Mon Sep 17 00:00:00 2001 From: Thomas Jung Date: Sun, 25 Oct 2026 12:50:43 +0100 Subject: [PATCH] fix(ci): regenerate fingerprinted CSS before QA Hugo build (#2912) The QA rebuild workflow builds Hugo directly via /tmp/hugo rather than `npm run build:all`, but was never given the build:icon-subset + build:css steps that commit ac6b7e39f (#2896 follow-up) added to the prod rebuild-content.yml when it .gitignored those generated CSS outputs. On a clean CI checkout fundamental-styles-icon.css is therefore absent, so head.html:27 (resources.Get "css/fundamental-styles-icon.css" | minify) fails with "wrong type for value; expected resources.ResourceTransformer; got resource.Resource" and every QA full rebuild dies at the Hugo step. Add a "Build fingerprinted CSS" step before the QA Hugo build, mirroring rebuild-content.yml, so QA and prod regenerate byte-identical CSS and agree on the fingerprint. --- .github/workflows/rebuild-content-qa.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/rebuild-content-qa.yml b/.github/workflows/rebuild-content-qa.yml index ead034b04..6a736df0a 100644 --- a/.github/workflows/rebuild-content-qa.yml +++ b/.github/workflows/rebuild-content-qa.yml @@ -381,6 +381,22 @@ jobs: - name: Build island fingerprint manifest run: npm run build:island-manifest + # Generated CSS (#2896 follow-up, mirrors rebuild-content.yml). Commit + # ac6b7e39f stopped committing sap-fundamental.css (build:css, postcss) + # and fundamental-styles-icon.css (build:icon-subset) — both are now + # .gitignored build outputs. head.html does `resources.Get | minify` on + # the icon subset, so on a clean CI checkout where the file is absent the + # QA Hugo build fails at head.html:27 ("wrong type ...; got + # resource.Resource"). This workflow drives /tmp/hugo directly rather than + # `npm run build:all`, so — like the feed fetchers above — it must + # regenerate them BEFORE the Hugo build. build:css + build:icon-subset + # produce byte-identical output to the deploy's build:all, so QA and prod + # agree on the fingerprint. (QA regression #2912.) + - name: Build fingerprinted CSS (sap-fundamental + icon subset) + run: | + npm run build:icon-subset + npm run build:css + - name: Build QA Hugo site # Hugo was downloaded to /tmp/hugo (line 44). The build:qa npm script # invokes 'hugo' (bare binary name) — works locally where hugo is