From 3921de91a6ff26715cdc276ebc0d5d1a0cf14b42 Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Wed, 7 Oct 2026 16:57:18 +0200 Subject: [PATCH] ci: run goreleaser without the runner's GOCACHEPROG goreleaser runs several go builds at once; each spawns its own gobuildcache, and they time out on its per-entry file locks while one holds the lock across a slow S3 call ('failed to acquire lock: context deadline exceeded', check-release on #997). Use Go's local cache for goreleaser. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Ma8eHhW59hLAJuLzBnLvUu --- .gitea/workflows/ci.yaml | 8 ++++++-- .gitea/workflows/goreleaser.yaml | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 1f78094..c6fea6b 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -61,11 +61,15 @@ jobs: with: version: '~> v2' args: check - - name: Test release build + - name: Install goreleaser uses: goreleaser/goreleaser-action@v7 with: version: '~> v2' - args: release --snapshot --clean + install-only: true + # Without the runner's GOCACHEPROG (gobuildcache): goreleaser's parallel + # go builds contend for its per-entry locks and time out. + - name: Test release build + run: env -u GOCACHEPROG goreleaser release --snapshot --clean build: needs: [check, vulnerabilities, check-release] diff --git a/.gitea/workflows/goreleaser.yaml b/.gitea/workflows/goreleaser.yaml index c322b58..544b0a1 100644 --- a/.gitea/workflows/goreleaser.yaml +++ b/.gitea/workflows/goreleaser.yaml @@ -27,4 +27,5 @@ jobs: run: | GITEA_TOKEN=$(cat "${RELEASE_TOKEN_FILE}") export GITEA_TOKEN - goreleaser release --clean + # Without GOCACHEPROG: parallel builds contend for gobuildcache's locks. + env -u GOCACHEPROG goreleaser release --clean