unkin-agent d2040789e5
ci/woodpecker/pr/test Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline failed
Add matrixed gobuilder image build
Replace the packer-images gobuilder with a Dockerfile matrix built on each
container-base distro image, on a single repo semver.

- install golang, gcc and nfpm
- bake the sha256-pinned go-cache-plugin v0.1.0 binary onto PATH
- run in-image assertions as a --target test build stage
- add pull_request build/test/pre-commit and tag-triggered docker workflows
2026-09-27 17:55:29 +10:00
2026-09-27 17:55:29 +10:00
2026-09-27 17:55:29 +10:00
2026-09-27 17:55:29 +10:00
2026-09-27 17:55:29 +10:00

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,test,docker}.yaml.

pre-commit.sh fails if step 2 is forgotten, or if more than one distro claims DEFAULT.

Make

make build          # build every distro
make test           # build the test stage of every distro (assertions run in-image)
make build-alma9    # one distro
make patch|minor|major
S
Description
Go toolchain builder container image, built on each supported container-base distro image, used by Woodpecker pipelines to compile Go projects.
Readme 61 KiB
Languages
Shell 36.4%
Dockerfile 32.7%
Makefile 30.9%