d2040789e5
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
1.2 KiB
1.2 KiB
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
distros/<name>/distro.env—BASE_IMAGE_NAME,IMAGE,TAG_SUFFIX,DEFAULT,PACKAGES,GO_MIN.- One
includeentry 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