The CI workflow step is named "runs make check", which the image has never done #175

Open
opened 2026-08-18 01:07:52 +02:00 by clawbot · 0 comments
Collaborator

Found by the final independent review of #165. Deliberately NOT milestoned 1.0.0 — nothing is broken, and the tag does not rest on a step's display name.

.gitea/workflows/check.yml names its build step "Build Docker image (runs make check)". The image has never run make check. It runs make fmt-check, then golangci-lint config verify and golangci-lint run in the lint stage, then make test and make build in the builder. script/check — which is what make check invokes — is not called anywhere in the Dockerfile.

Pre-existing and untouched by #109. Filing it because this repo has spent a lot of review effort this cycle on exactly this class — a label asserting something the code does not do — and a step name is the first thing someone reads when a CI run fails.

Two README wording items to fold into the same commit

Both raised by the same review as non-blocking, and both are imprecision rather than falsehood:

  • "only script/test and script/fmt-check run on the host" is true of make check's components, but reads as a global claim about the repo. Scope it.
  • The Prerequisites bullet describes Docker as needed "for the test stage of the CI gate", which understates it: since #109, Docker is required for make lint and therefore for make check locally.

Definition of done

  • The workflow step name describes what the image actually runs, or is generic enough not to claim anything false.
  • Grep the workflow for any other step name or comment that names a target it does not invoke.
  • The two README sentences above are scoped accurately.
  • make check and the cache-defeated Docker build are green.

Implementation requirements

  • Branch from next, PR based on next, single commit, title ending (closes #N).
  • Do not modify TODO.md (see #112).
  • Run make bootstrap in a fresh clone before gating — browser assets are fetched at build time and not committed, and make lint now requires Docker.
  • Gate on make check plus the Docker lint path with the cache defeated. All linting runs in Docker, never on the host.
Found by the final independent review of https://git.eeqj.de/sneak/webhooker/pulls/165. Deliberately NOT milestoned 1.0.0 — nothing is broken, and the tag does not rest on a step's display name. `.gitea/workflows/check.yml` names its build step **"Build Docker image (runs make check)"**. The image has never run `make check`. It runs `make fmt-check`, then `golangci-lint config verify` and `golangci-lint run` in the lint stage, then `make test` and `make build` in the builder. `script/check` — which is what `make check` invokes — is not called anywhere in the Dockerfile. Pre-existing and untouched by https://git.eeqj.de/sneak/webhooker/issues/109. Filing it because this repo has spent a lot of review effort this cycle on exactly this class — a label asserting something the code does not do — and a step name is the first thing someone reads when a CI run fails. ## Two README wording items to fold into the same commit Both raised by the same review as non-blocking, and both are imprecision rather than falsehood: - "only `script/test` and `script/fmt-check` run on the host" is true of `make check`'s components, but reads as a global claim about the repo. Scope it. - The Prerequisites bullet describes Docker as needed "for the test stage of the CI gate", which understates it: since https://git.eeqj.de/sneak/webhooker/issues/109, Docker is required for `make lint` and therefore for `make check` locally. ## Definition of done - The workflow step name describes what the image actually runs, or is generic enough not to claim anything false. - Grep the workflow for any other step name or comment that names a target it does not invoke. - The two README sentences above are scoped accurately. - `make check` and the cache-defeated Docker build are green. ## Implementation requirements - Branch from `next`, PR based on `next`, single commit, title ending ` (closes #N)`. - Do not modify `TODO.md` (see https://git.eeqj.de/sneak/webhooker/issues/112). - Run `make bootstrap` in a fresh clone before gating — browser assets are fetched at build time and not committed, and `make lint` now requires Docker. - Gate on `make check` plus the Docker lint path with the cache defeated. All linting runs in Docker, never on the host.
clawbot self-assigned this 2026-08-18 01:07:52 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#175