build: persist Go build cache across Docker release builds
Mount .gocache/ from the host into the builder container so --rm container removal no longer wipes GOCACHE between runs.
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
# Build outputs
|
||||
dist/
|
||||
|
||||
# Persistent Go build cache for Docker-based release builds.
|
||||
.gocache/
|
||||
|
||||
# Generated Windows resource compiled from packaging/windows/gosentry.rc.
|
||||
cmd/gosentry/*.syso
|
||||
|
||||
|
||||
@@ -18,12 +18,14 @@ fi
|
||||
docker build -f Dockerfile -t "$tag" .
|
||||
|
||||
mkdir -p "$(dirname "$output")"
|
||||
mkdir -p "$(pwd)/.gocache"
|
||||
docker run --rm \
|
||||
"${docker_user_args[@]}" \
|
||||
-e "VERSION=${version}" \
|
||||
-e "OUTPUT=${output}" \
|
||||
-e "GOCACHE=/tmp/go-build-cache" \
|
||||
-v "$(pwd):/src" \
|
||||
-v "$(pwd)/.gocache:/tmp/go-build-cache" \
|
||||
-w /src \
|
||||
"$tag" \
|
||||
bash -c 'CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${VERSION}" -o "${OUTPUT}" ./cmd/gosentry'
|
||||
|
||||
@@ -88,11 +88,13 @@ normalize_targets() {
|
||||
}
|
||||
|
||||
run_in_builder() {
|
||||
mkdir -p "${repo_root}/.gocache"
|
||||
docker run --rm \
|
||||
"${docker_user_args[@]}" \
|
||||
-e "VERSION=${version}" \
|
||||
-e "GOCACHE=/tmp/go-build-cache" \
|
||||
-v "${repo_root}:/src" \
|
||||
-v "${repo_root}/.gocache:/tmp/go-build-cache" \
|
||||
-w /src \
|
||||
"$tag" \
|
||||
bash -c "$1"
|
||||
|
||||
Reference in New Issue
Block a user