From 408d3f87f015e58cbfe71ca9c8c41bc2a65f9794 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Sun, 14 Jun 2026 21:21:22 +0100 Subject: [PATCH] Fix CI --- .forgejo/workflows/ci.yml | 5 +++++ Dockerfile | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index f23549c..2da418d 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -29,6 +29,11 @@ jobs: - name: Install frontend dependencies working-directory: frontend + # Chrome isn't needed for these checks (lint/typecheck/vitest-jsdom), so + # skip puppeteer's postinstall browser download — it's slow and a flaky + # point of failure. The prerender build installs Chrome explicitly. + env: + PUPPETEER_SKIP_DOWNLOAD: "true" run: npm ci - name: Install screenshot service dependencies diff --git a/Dockerfile b/Dockerfile index 59ec2e8..2f68251 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,10 +12,19 @@ ENV BUGSINK_ENVIRONMENT=$BUGSINK_ENVIRONMENT ENV BUGSINK_RELEASE=$BUGSINK_RELEASE ENV BUGSINK_SEND_DEFAULT_PII=$BUGSINK_SEND_DEFAULT_PII +# Puppeteer's bundled Chrome downloads from storage.googleapis.com, which is +# geo-blocked on the CI host ("this service is not available in your location"). +# Install Chromium from Debian instead: it's reachable, currently tracks the same +# Chrome 149.x puppeteer expects, and apt pulls in the system libraries it needs. +# So: skip puppeteer's postinstall browser download and point its launcher (used +# by the prerender step) at the system binary. +ENV PUPPETEER_SKIP_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium + COPY frontend/package.json frontend/package-lock.json ./ RUN npm ci RUN apt-get update \ - && npx puppeteer browsers install chrome --install-deps \ + && apt-get install -y --no-install-recommends chromium \ && rm -rf /var/lib/apt/lists/* COPY frontend/ ./ RUN npm run build