kustomize: automate github release publishing
An example release looks like: https://github.com/droot/kubectl/releases/tag/v0.1.0
This commit is contained in:
parent
60665244b3
commit
88a1b80229
|
|
@ -0,0 +1,29 @@
|
|||
# This is an example goreleaser.yaml file with some sane defaults.
|
||||
# Make sure to check the documentation at http://goreleaser.com
|
||||
project_name: kustomize
|
||||
builds:
|
||||
- main: ./cmd/kustomize
|
||||
binary: kustomize
|
||||
ldflags: -s -X k8s.io/kubectl/cmd/kustomize/version.kustomizeVersion={{.Version}} -X k8s.io/kubectl/cmd/kustomize/version.gitCommit={{.Commit}} -X k8s.io/kubectl/cmd/kustomize/version.buildDate={{.Date}}
|
||||
goos:
|
||||
- darwin
|
||||
- linux
|
||||
- windows
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
archive:
|
||||
wrap_in_directory: true
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
snapshot:
|
||||
name_template: "{{ .Tag }}-next"
|
||||
changelog:
|
||||
sort: asc
|
||||
filters:
|
||||
exclude:
|
||||
- '^docs:'
|
||||
- '^test:'
|
||||
release:
|
||||
github:
|
||||
owner: droot
|
||||
name: kubectl
|
||||
|
|
@ -22,30 +22,21 @@ set -x
|
|||
# - Create the directory to host the code that matches the expected GOPATH package locations
|
||||
# - Use /go as the default GOPATH because this is what the image uses
|
||||
# - Link our current directory (containing the source code) to the package location in the GOPATH
|
||||
|
||||
export PKG=k8s.io
|
||||
export REPO=kubectl
|
||||
export CMD=kustomize
|
||||
|
||||
mkdir -p /go/src/$PKG
|
||||
ln -s $(pwd) /go/src/$PKG/$REPO
|
||||
GO_PKG_OWNER=$GOPATH/src/$PKG
|
||||
GO_PKG_PATH=$GO_PKG_OWNER/$REPO
|
||||
|
||||
# Create the output directory for the binaries we will build
|
||||
# Make sure CGO is 0 so the binaries are statically compiled and linux which is necessary for cross compiling go
|
||||
export CGO=0
|
||||
export DEST=/workspace/_output/$CMD/bin
|
||||
mkdir -p $DEST || echo ""
|
||||
mkdir -p $GO_PKG_OWNER
|
||||
ln -s $(pwd) $GO_PKG_PATH
|
||||
|
||||
go build -o $DEST/$CMD $PKG/$REPO/cmd/$CMD
|
||||
# When invoked in container builder, this script runs under /workspace which is
|
||||
# not under $GOPATH, so we need to `cd` to repo under GOPATH for it to build
|
||||
cd $GO_PKG_PATH
|
||||
|
||||
# Explicitly set the values of the variables in package "X" using ldflag so that they are statically compiled into
|
||||
# the "version" command
|
||||
export GITCOMMIT=$(git rev-parse HEAD)
|
||||
export BUILDDATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
||||
export X=$PKG/$REPO/cmd/$CMD/version
|
||||
go build -o $DEST/$CMD \
|
||||
-ldflags "-X $X.kustomizeVersion=$TAG -X $X.goos=$GOOS -X $X.goarch=$GOARCH -X $X.gitCommit=$GITCOMMIT -X $X.buildDate=$BUILDDATE" \
|
||||
$PKG/$REPO/cmd/$CMD
|
||||
|
||||
# Generate the tar archive
|
||||
cd /workspace/_output/
|
||||
tar -czvf /workspace/$CMD-$VERSION-$GOOS-$GOARCH.tar.gz $CMD
|
||||
/goreleaser release --config=cmd/$CMD/build/.goreleaser.yml --debug --rm-dist
|
||||
# --skip-validate
|
||||
# --snapshot --skip-publish
|
||||
|
|
|
|||
|
|
@ -16,15 +16,10 @@
|
|||
steps:
|
||||
- name: "ubuntu"
|
||||
args: ["mkdir", "-p", "/workspace/_output"]
|
||||
- name: "golang:1.10-stretch"
|
||||
- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch"
|
||||
args: ["bash", "cmd/kustomize/build/build.sh"]
|
||||
env:
|
||||
- 'GOOS=${_GOOS}'
|
||||
- 'GOARCH=${_GOARCH}'
|
||||
- 'VERSION=${TAG_NAME}'
|
||||
- name: 'gcr.io/cloud-builders/gsutil'
|
||||
args: ['-h', 'Content-Type:application/gzip', 'cp', '-a', 'public-read', 'kustomize-${TAG_NAME}-${_GOOS}-${_GOARCH}.tar.gz', 'gs://kustomize-release/kustomize-${TAG_NAME}-${_GOOS}-${_GOARCH}.tar.gz']
|
||||
env:
|
||||
- 'GOOS=${_GOOS}'
|
||||
- 'GOARCH=${_GOARCH}'
|
||||
- 'VERSION=${TAG_NAME}'
|
||||
secretEnv: ['GITHUB_TOKEN']
|
||||
secrets:
|
||||
- kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token
|
||||
secretEnv:
|
||||
GITHUB_TOKEN: CiQAyrREbPgXJOeT7M3t+WlxkhXwlMPudixBeiyWTjmLOMLqdK4SUQA0W+xUmDJKAhyfHCcwqSEzUn9OwKC7XAYcmwe0CCKTCbPbDgmioDK24q3LVapndXNvnnHvCjhOJNEr1o+P1DCF+LlzYV2YL8lP09rrKrslPg==
|
||||
|
|
|
|||
|
|
@ -23,9 +23,10 @@
|
|||
steps:
|
||||
- name: "ubuntu"
|
||||
args: ["mkdir", "-p", "/workspace/_output"]
|
||||
- name: "golang:1.10-stretch"
|
||||
- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch"
|
||||
args: ["bash", "cmd/kustomize/build/build.sh"]
|
||||
env:
|
||||
- 'GOOS=${_GOOS}'
|
||||
- 'GOARCH=${_GOARCH}'
|
||||
- 'VERSION=${TAG_NAME}'
|
||||
secretEnv: ['GITHUB_TOKEN']
|
||||
secrets:
|
||||
- kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token
|
||||
secretEnv:
|
||||
GITHUB_TOKEN: CiQAyrREbPgXJOeT7M3t+WlxkhXwlMPudixBeiyWTjmLOMLqdK4SUQA0W+xUmDJKAhyfHCcwqSEzUn9OwKC7XAYcmwe0CCKTCbPbDgmioDK24q3LVapndXNvnnHvCjhOJNEr1o+P1DCF+LlzYV2YL8lP09rrKrslPg==
|
||||
|
|
|
|||
Loading…
Reference in New Issue