Files
container-gobuilder/README.md
T
unkin-agent 06b159694c
ci/woodpecker/pr/build Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
Replace pre-commit.sh with the pre-commit framework and drop the test harness
The hand-rolled pre-commit.sh reimplemented what upstream hooks already do.
Move to pre-commit.com with the estate's usual pre-commit-hooks set plus
hadolint and shellcheck, and keep the one check with no upstream equivalent
(distros/ vs the Woodpecker matrices) as a repo: local hook.

The test harness goes; tests will be reintroduced differently.

- add .pre-commit-config.yaml and ci/check-distros.sh
- delete pre-commit.sh, test.sh and .woodpecker/test.yaml
- run uvx pre-commit run --all-files from .woodpecker/pre-commit.yaml and make pre-commit
- drop the Dockerfile test stage and the make test targets
2026-09-27 20:17:06 +10:00

31 lines
1.2 KiB
Markdown

# container-gobuilder
The estate's Go toolchain image, built on each `container-base` distro image.
Published as `artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:<version>-<suffix>`;
the default distro also gets the unsuffixed `:<version>` and `:latest`.
| distro | from | tag suffix | default |
| --- | --- | --- | --- |
| `alma9` | `docker-internal/almalinux9:<base version>` | `alma9` | yes |
Adds `golang`, `gcc` and `nfpm`, and bakes in the `go-cache-plugin` binary on `PATH`
so Go pipelines get the shared build cache with no download step. No credentials and no
`GOCACHEPROG` value are baked in — consumers set those.
The `container-base` release this image builds on is `BASE_VERSION` in the `Dockerfile`.
## Adding a distro
1. `distros/<name>/distro.env` — `BASE_IMAGE_NAME`, `IMAGE`, `TAG_SUFFIX`, `DEFAULT`, `PACKAGES`, `GO_MIN`.
2. One `include` entry in each of `.woodpecker/{build,docker}.yaml`.
The `check-distros` pre-commit hook fails if step 1 or 2 is incomplete, or if more than
one distro claims `DEFAULT`.
## Make
make build # build every distro
make pre-commit # uvx pre-commit run --all-files
make build-alma9 # one distro
make patch|minor|major