From 6177633abc159f406b4de86ad2fb2103d353ddfb Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Sat, 15 Aug 2026 22:03:41 +0200 Subject: [PATCH] fix: give the image build the files its tests read MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The suite gained three tests that assert on .github/workflows — the freshness-cache restore, the per-attempt cache key and the rebase-and- retry push, all defects that live in YAML and fail silently. But .dockerignore excluded .github, so those three tests failed inside the image build and took the whole build down with them. Put .github in the build context. It reaches the build stage only; the runtime stage still copies nothing but public/ and serve.ts, and the image is unchanged (verified: /app holds public and serve.ts, nothing else). Co-Authored-By: Claude Opus 5 (1M context) --- .dockerignore | 4 +++- Dockerfile | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 5717c3d..93bb0e5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,7 @@ .git -.github +# .github is NOT ignored: the test suite asserts on the refresh workflows, and +# the image build runs that suite as its gate. It reaches the build stage only — +# the runtime stage copies nothing but public/ and serve.ts. .gitlab-ci.yml node_modules public diff --git a/Dockerfile b/Dockerfile index 591c210..06fe86d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,10 @@ COPY fixtures ./fixtures # served fresh, with nothing to say why. COPY snapshots ./snapshots COPY test ./test +# The suite asserts on the refresh workflows — three defects that live in YAML +# and fail silently — so the files have to be here for `bun test` below to mean +# the same thing it means in CI. +COPY .github ./.github # Fail the image on a type error or a failing test rather than shipping it. RUN bun run typecheck && bun test