chore(ci): persistent pnpm store + Playwright caches (and Dockerfile BuildKit cache) #27
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user