Name each embedded static file so a missing Alpine.js fails the build (closes #166)
check / check (push) Waiting to run

static/static.go embedded the css and js directories, which match
whatever is present, so a build that skipped make assets produced a
binary whose pages had no Alpine.js. It now names the four files the
pages load, so a missing one is a compile error naming it.
css/input.css, the Tailwind source that no page loads, is no longer
embedded or served.

Both lint stages now extract Alpine.js before linting, since the
static package no longer compiles without it.

Model: opus-5-5
This commit is contained in:
2026-10-02 18:37:22 +00:00
parent 9526e961b5
commit 74fc086596
4 changed files with 16 additions and 5 deletions
+6 -3
View File
@@ -1348,7 +1348,9 @@ apply. The directory is `3p/` rather than `vendor/` because Go treats a root
where `go:embed` picks it up. `script/test`, `make build` and `make dev` run
it first, and the Dockerfile builds through `make test` and `make build`, so
nothing downloads Alpine.js. The extracted file is not committed, and
`.dockerignore` keeps any host copy out of the build context.
`.dockerignore` keeps any host copy out of the build context. `static/static.go`
names every file it embeds, so a build that skips the extraction, such as a
bare `go build`, fails with an error naming `js/alpine.min.js`.
To move to a new version: download
`https://registry.npmjs.org/@alpinejs/csp/-/csp-<version>.tgz`, check it against
@@ -3379,8 +3381,9 @@ version is fixed independently of the compiler's:
1. **Lint stage** (`golangci/golangci-lint:v2.12.2`, Debian-based) —
installs `make`, downloads dependencies, copies the source, and runs
`make fmt-check`, then `golangci-lint config verify` and
`golangci-lint run`, both with `--network=none`.
`make fmt-check`, then `script/assets` to extract Alpine.js from
`3p/`, then `golangci-lint config verify` and `golangci-lint run`,
both with `--network=none`.
2. **Builder stage** (`golang:1.26.1-bookworm`) — depends on the lint
stage passing (it copies a file from it), runs `make test` and
`make build` (both extract Alpine.js from `3p/` first), and finally