From e24b4d1667d115a94f1f61a9efdd3d808f3244e2 Mon Sep 17 00:00:00 2001 From: unkin-agent Date: Fri, 2 Oct 2026 23:48:18 +1000 Subject: [PATCH] ci: move Go steps to gobuilder with shared S3 build cache golang:1.25 lacked the estate CA trust and a build cache, paying full compile cost every run and risking TLS failures against internal endpoints. - switch pre-commit and test steps to the gobuilder image - wire GOCACHEPROG to go-cache-plugin against the shared S3 cache - add backend_options resources and serviceAccountName to both steps --- .woodpecker/pre-commit.yaml | 23 ++++++++++++++++++++++- .woodpecker/test.yaml | 23 ++++++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/.woodpecker/pre-commit.yaml b/.woodpecker/pre-commit.yaml index 714a817..6031bcc 100644 --- a/.woodpecker/pre-commit.yaml +++ b/.woodpecker/pre-commit.yaml @@ -3,10 +3,31 @@ when: steps: - name: pre-commit - image: golang:1.25 + image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9 commands: - test -z "$(gofmt -l .)" - go vet ./... environment: # golib lives on Gitea; skip the public proxy/sum db. GOPRIVATE: git.unkin.net + 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-forgebot + 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 + resources: + requests: + memory: 512Mi + cpu: 1 + limits: + memory: 2Gi + cpu: 2 diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml index 187ccbd..9b2190e 100644 --- a/.woodpecker/test.yaml +++ b/.woodpecker/test.yaml @@ -3,9 +3,30 @@ when: steps: - name: test - image: golang:1.25 + image: artifactapi.k8s.syd1.au.unkin.net/docker-internal/gobuilder:0.1.2-alma9 commands: - go test -race -count=1 ./pkg/... ./internal/... ./api/... environment: # golib lives on Gitea; skip the public proxy/sum db. GOPRIVATE: git.unkin.net + 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-forgebot + 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 + resources: + requests: + memory: 1Gi + cpu: 1 + limits: + memory: 3Gi + cpu: 2 -- 2.47.3