Run lint and tests as Dockerfile phases built with --no-cache (closes #202)
check / check (push) Failing after 2s
check / check (push) Failing after 2s
script/check, cibuild, docker, lint, test, setup and install-precommit are now the copies from sneak/prompts main, unchanged: lint and test each build their Dockerfile phase with --no-cache, and cibuild runs bootstrap and check before building the image. The lint phase runs golangci-lint from the image REPO_POLICIES.md names, with libvips-dev from apt-get; the test phase runs the tests with a 90-second timeout; the build stage depends on both. Dockerfile.lint and CHECK_EPOCH are gone, the formatting check stays on the host, and make docker-versioned and docker-test call the scripts. Without VERSION the stage that compiles still takes the version from git describe, per issue 166. Model: opus-5-5
This commit is contained in:
@@ -568,22 +568,31 @@ them. We provide:
|
||||
- `script/setup` — make a fresh clone ready for development
|
||||
(bootstrap, then install-precommit)
|
||||
- `script/projectname` — output the project name ("pixa")
|
||||
- `script/test` — run the test suite
|
||||
- `script/lint` — run golangci-lint, always in a container (builds
|
||||
`Dockerfile.lint` when run outside one)
|
||||
- `script/test` — run the test suite: build the `test` phase of the
|
||||
`Dockerfile`, tagged `pixa-test`
|
||||
- `script/lint` — run golangci-lint: build the `lint` phase of the `Dockerfile`,
|
||||
tagged `pixa-lint`; the linter never runs on the host
|
||||
- `script/fmt` — format all code (writes)
|
||||
- `script/fmt-check` — check formatting (read-only)
|
||||
- `script/fmt-check` — check formatting (read-only), on the host
|
||||
- `script/check` — run test, lint, and fmt-check
|
||||
- `script/docker` — build the Docker image tagged via `script/projectname`
|
||||
- `script/docker` — build the Docker image tagged via `script/projectname`, with
|
||||
the version from `git describe`; the image's build stage depends on the `lint`
|
||||
and `test` phases, so this runs them too
|
||||
- `script/docker-smoke` — build the image, start it, wait for it to be healthy
|
||||
- `script/cibuild` — CI entrypoint: `docker build .` with a new
|
||||
`CHECK_EPOCH` on every run, so the Dockerfile's checks run instead of
|
||||
coming from the build cache, and a green run implies a green repo
|
||||
- `script/cibuild` — CI entrypoint: run `script/bootstrap` (which installs Go
|
||||
and the libvips libraries on the host), then `script/check`, then build the
|
||||
image as `script/docker` does
|
||||
- `script/precommit` — pre-commit checks (`go mod tidy` guard, then
|
||||
`script/check`)
|
||||
- `script/install-precommit` — install the git pre-commit hook that
|
||||
runs `script/precommit`
|
||||
|
||||
Every `docker build` in these scripts passes `--no-cache`, so the lint and test
|
||||
phases run on every build instead of coming from the build cache.
|
||||
`script/check`, `script/cibuild`, `script/docker`, `script/lint`, `script/test`,
|
||||
`script/setup` and `script/install-precommit` are the standard copies from
|
||||
`sneak/prompts`, kept identical to them.
|
||||
|
||||
## TODO
|
||||
|
||||
See [TODO.md](TODO.md) for the full prioritized task list.
|
||||
|
||||
Reference in New Issue
Block a user