From f7119e2361357699e5c94ddb3a71fbf8fdea116a Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Fri, 2 Oct 2026 23:45:30 +1000 Subject: [PATCH] ci: switch Go steps to gobuilder, enable S3 build cache golang:1.25 and the stale almalinux9-gobuilder pin are replaced by gobuilder:0.1.2-alma9 on every step that invokes the Go toolchain, with GOCACHEPROG wired to the baked-in go-cache-plugin against the shared S3 cache bucket. - pre-commit, test, release build/test: image -> gobuilder:0.1.2-alma9 - add GOCACHE_* env + AWS creds from org secrets, absolute cache-dir - lint step (test.yaml), buildx steps, release upload step untouched --- .woodpecker/pre-commit.yaml | 13 ++++++++++++- .woodpecker/release.yaml | 26 ++++++++++++++++++++++++-- .woodpecker/test.yaml | 13 ++++++++++++- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/.woodpecker/pre-commit.yaml b/.woodpecker/pre-commit.yaml index d57b508..b4153b6 100644 --- a/.woodpecker/pre-commit.yaml +++ b/.woodpecker/pre-commit.yaml @@ -3,7 +3,18 @@ when: steps: - name: pre-commit - image: git.unkin.net/unkin/almalinux9-gobuilder:20260606 + image: "artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9" + environment: + GOCACHE_S3_BUCKET: gocache + GOCACHE_S3_REGION: us-east-1 + GOCACHE_S3_ENDPOINT_URL: "https://s3.ceph.unkin.net" + GOCACHE_S3_PATH_STYLE: "true" + GOCACHE_KEY_PREFIX: ci-bootapi + GOCACHEPROG: "go-cache-plugin --cache-dir=/tmp/gocache" + AWS_ACCESS_KEY_ID: + from_secret: GOCACHE_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: GOCACHE_AWS_SECRET_ACCESS_KEY commands: - uvx pre-commit run --all-files backend_options: diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 72c5bf3..d90b21f 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -6,7 +6,18 @@ when: # container image is built+pushed separately by docker.yaml. steps: - name: test - image: golang:1.25 + image: "artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9" + environment: + GOCACHE_S3_BUCKET: gocache + GOCACHE_S3_REGION: us-east-1 + GOCACHE_S3_ENDPOINT_URL: "https://s3.ceph.unkin.net" + GOCACHE_S3_PATH_STYLE: "true" + GOCACHE_KEY_PREFIX: ci-bootapi + GOCACHEPROG: "go-cache-plugin --cache-dir=/tmp/gocache" + AWS_ACCESS_KEY_ID: + from_secret: GOCACHE_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: GOCACHE_AWS_SECRET_ACCESS_KEY commands: - go test -race ./... backend_options: @@ -21,7 +32,18 @@ steps: cpu: 2 - name: build - image: git.unkin.net/unkin/almalinux9-gobuilder:20260606 + image: "artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9" + environment: + GOCACHE_S3_BUCKET: gocache + GOCACHE_S3_REGION: us-east-1 + GOCACHE_S3_ENDPOINT_URL: "https://s3.ceph.unkin.net" + GOCACHE_S3_PATH_STYLE: "true" + GOCACHE_KEY_PREFIX: ci-bootapi + GOCACHEPROG: "go-cache-plugin --cache-dir=/tmp/gocache" + AWS_ACCESS_KEY_ID: + from_secret: GOCACHE_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: GOCACHE_AWS_SECRET_ACCESS_KEY commands: - make release-binaries VERSION=${CI_COMMIT_TAG} depends_on: [test] diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 9e5823b..511044a 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -18,7 +18,18 @@ steps: cpu: 2 - name: test - image: golang:1.25 + image: "artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9" + environment: + GOCACHE_S3_BUCKET: gocache + GOCACHE_S3_REGION: us-east-1 + GOCACHE_S3_ENDPOINT_URL: "https://s3.ceph.unkin.net" + GOCACHE_S3_PATH_STYLE: "true" + GOCACHE_KEY_PREFIX: ci-bootapi + GOCACHEPROG: "go-cache-plugin --cache-dir=/tmp/gocache" + AWS_ACCESS_KEY_ID: + from_secret: GOCACHE_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: GOCACHE_AWS_SECRET_ACCESS_KEY commands: - go test -race ./... backend_options: -- 2.47.3