From 27504777f886806884802b55303c4ab346d49d6c Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Fri, 2 Oct 2026 23:53:13 +1000 Subject: [PATCH] ci: switch Go toolchain steps to gobuilder + shared S3 cache Cut CI time/network by caching go build/vet/test artifacts in S3. - bump build/test/pre-commit/release(test,build) to artifactapi.../gobuilder:0.1.2-alma9 - wire GOCACHEPROG via go-cache-plugin with an absolute cache dir - add GOCACHE_* env (ci-tomswall prefix) and AWS creds from org secrets - leave rpm package/upload steps untouched (no Go toolchain) --- .woodpecker/build.yaml | 14 +++++++++++++- .woodpecker/pre-commit.yaml | 14 +++++++++++++- .woodpecker/release.yaml | 28 ++++++++++++++++++++++++++-- .woodpecker/test.yaml | 14 +++++++++++++- 4 files changed, 65 insertions(+), 5 deletions(-) diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index f288e50..f4d6a5d 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -3,9 +3,21 @@ when: steps: - name: build - image: golang:1.23 + image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9 commands: - go build ./... + 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-tomswall + GOCACHE_METRICS: "true" + 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 backend_options: kubernetes: serviceAccountName: default diff --git a/.woodpecker/pre-commit.yaml b/.woodpecker/pre-commit.yaml index d57b508..a223377 100644 --- a/.woodpecker/pre-commit.yaml +++ b/.woodpecker/pre-commit.yaml @@ -3,9 +3,21 @@ 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 commands: - uvx pre-commit run --all-files + 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-tomswall + GOCACHE_METRICS: "true" + 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 backend_options: kubernetes: serviceAccountName: default diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 1fe4331..f192112 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -4,9 +4,21 @@ when: steps: - name: test - image: golang:1.23 + image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9 commands: - go test ./... + 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-tomswall + GOCACHE_METRICS: "true" + 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 backend_options: kubernetes: serviceAccountName: default @@ -19,10 +31,22 @@ 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 commands: - make dist-build VERSION=${CI_COMMIT_TAG} depends_on: [test] + 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-tomswall + GOCACHE_METRICS: "true" + 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 backend_options: kubernetes: serviceAccountName: default diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 9aea57f..ae7b6c8 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -3,10 +3,22 @@ when: steps: - name: test - image: golang:1.23 + image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9 commands: - go vet ./... - go test ./... + 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-tomswall + GOCACHE_METRICS: "true" + 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 backend_options: kubernetes: serviceAccountName: default