From f83d423e1c46e1c64975579cb6ac8753e487ca1c Mon Sep 17 00:00:00 2001 From: Lucas Berger Date: Thu, 18 Jun 2026 21:16:52 -0400 Subject: [PATCH] docs(20): document CI persistent cache host-mount dependency - Add "CI dependency caches" subsection to CI Pipeline Overview - Lists /pnpm-store and /ms-playwright container paths - Notes act_runner config.yaml container.options host-mount requirement - Clarifies that CI still works without the mounts (ephemeral fallback) --- docs/DEVELOPMENT.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 9198982..0fc712e 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -205,6 +205,21 @@ Every PR to `main` runs through `.gitea/workflows/ci.yml`. A `changes` path-filt All five jobs must pass (or be legitimately skipped) before a PR can merge. See [docs/TESTING.md](TESTING.md) for test suite details. +### CI dependency caches + +CI uses two persistent cache paths inside job containers: + +| Path | Content | +| ---------------- | ----------------------------------------------------------------------- | +| `/pnpm-store` | pnpm content-addressable store (`--store-dir /pnpm-store`) | +| `/ms-playwright` | Playwright browser binaries (`PLAYWRIGHT_BROWSERS_PATH=/ms-playwright`) | + +These paths must be bind-mounted from host directories in the act_runner `config.yaml` +`container.options` field — that is a **host-side change, not tracked in this repo**. Without the +mounts, CI still works correctly — pnpm creates an ephemeral store at `/pnpm-store` inside the +container and Playwright downloads browsers fresh each run. The mounts only eliminate repeat +downloads across runs. + ## Drizzle Migration Workflow Schema changes follow a strict two-step process. **`drizzle-kit push` is not available** — it has been removed from the scripts because it emits a false destructive diff (table truncation) on populated MariaDB databases.