Install goreleaser into go 1.18 image for build

This commit is contained in:
Katrina Verey
2022-04-04 23:43:47 -04:00
parent 4fc02497ae
commit fe604fd3d1
4 changed files with 26 additions and 22 deletions

View File

@@ -45,6 +45,9 @@ $(MYGOBIN)/addlicense:
$(MYGOBIN)/statik: $(MYGOBIN)/statik:
go install github.com/rakyll/statik@latest go install github.com/rakyll/statik@latest
$(MYGOBIN)/goreleaser:
go install github.com/goreleaser/goreleaser@v0.179.0 # https://github.com/kubernetes-sigs/kustomize/issues/4542
$(MYGOBIN)/kind: $(MYGOBIN)/kind:
( \ ( \
set -e; \ set -e; \

View File

@@ -9,27 +9,41 @@
# #
# To test it locally, run it in a goreleaser container: # To test it locally, run it in a goreleaser container:
# #
# # Get goreleaser image from cloudbuild.yaml # # Get build image from cloudbuild.yaml
# export GORELEASER_IMAGE=goreleaser/goreleaser:v0.179.0 # export GOLANG_IMAGE=golang:1.18
# #
# # Drop into a shell # # Drop into a shell
# docker run -it --entrypoint=/bin/bash -v $(pwd):/go/src/github.com/kubernetes-sigs/kustomize -w /go/src/github.com/kubernetes-sigs/kustomize $GORELEASER_IMAGE # docker run -it --entrypoint=/bin/bash -v $(pwd):/go/src/github.com/kubernetes-sigs/kustomize -w /go/src/github.com/kubernetes-sigs/kustomize $GOLANG_IMAGE
# #
# # Run this script in the container, where $TAG is the tag to "release" (e.g. kyaml/v0.13.4) # # Run this script in the container, where $TAG is the tag to "release" (e.g. kyaml/v0.13.4)
# ./releasing/cloudbuild.sh $TAG --snapshot # ./releasing/cloudbuild.sh $TAG --snapshot
# #
set -e set -o errexit
set -x set -o nounset
set -o pipefail
if [[ -z "${1-}" ]] ; then
echo "Usage: $0 <fullTag> [--snapshot]"
echo "Example: $0 kyaml/v0.13.4"
exit 1
fi
set -x
fullTag=$1 fullTag=$1
shift shift
if ! command -v jq &> /dev/null if ! command -v jq &> /dev/null
then then
# This assumes we are in an alpine container (which is the case for goreleaser images) # This is expecting to be run from Cloud Build, in a Debian-based official golang container
echo "Installing jq." echo "Installing jq."
apk add jq --no-cache apt-get update && apt-get install -y jq
fi
if ! command -v goreleaser &> /dev/null
then
echo "Installing goreleaser."
make --file Makefile-tools.mk "$(go env GOPATH)/bin/goreleaser"
fi fi
./releasing/run-goreleaser.sh "$fullTag" release "$@" ./releasing/run-goreleaser.sh "$fullTag" release "$@"

View File

@@ -39,9 +39,8 @@ steps:
# Run goreleaser indirectly via a shell script # Run goreleaser indirectly via a shell script
# to configure it properly. # to configure it properly.
- name: goreleaser/goreleaser:v0.179.0 - name: golang:1.18
timeout: 12m entrypoint: /bin/bash
entrypoint: /bin/sh
dir: myClone dir: myClone
secretEnv: ['GITHUB_TOKEN'] secretEnv: ['GITHUB_TOKEN']
args: args:

View File

@@ -54,16 +54,6 @@ echo "module=$module"
semVer=${fullTag#$module/} semVer=${fullTag#$module/}
echo "semVer=$semVer" echo "semVer=$semVer"
# Because of https://github.com/kubernetes-sigs/kustomize/issues/4542
# we need to manually install a newer version of Go into an older goreleaser image.
# This points goreleaser to that version of Go, or the version discovered from PATH if unspecified.
goBinary="go"
if [[ -n "${GO_BINARY_PATH:-}" ]]; then
echo "GO_BINARY_PATH is set, using go version from $GO_BINARY_PATH"
goBinary="$GO_BINARY_PATH"
fi
sh -c "$goBinary version"
# Generate the changelog for this release # Generate the changelog for this release
# using the last two tags for the module # using the last two tags for the module
changeLogFile=$(mktemp) changeLogFile=$(mktemp)
@@ -114,8 +104,6 @@ builds:
-X sigs.k8s.io/kustomize/api/provenance.gitCommit={{.Commit}} -X sigs.k8s.io/kustomize/api/provenance.gitCommit={{.Commit}}
-X sigs.k8s.io/kustomize/api/provenance.buildDate={{.Date}} -X sigs.k8s.io/kustomize/api/provenance.buildDate={{.Date}}
gobinary: ${goBinary}
goos: goos:
- linux - linux
- darwin - darwin