diff --git a/build/README.md b/build/README.md index c0ca4bb35..a8d478eeb 100644 --- a/build/README.md +++ b/build/README.md @@ -10,12 +10,10 @@ Scripts and configuration files for publishing a Install [`cloud-build-local`], then run ``` -cloud-build-local \ - --config=build/cloudbuild_local.yaml \ - --dryrun=false --write-workspace=/tmp/w . +./build/localbuild.sh ``` -to build artifacts under `/tmp/w/dist`. +to build artifacts under `./dist`. ### Publish a Release diff --git a/build/cloudbuild.sh b/build/cloudbuild.sh index 2a11c42cf..88b701598 100755 --- a/build/cloudbuild.sh +++ b/build/cloudbuild.sh @@ -1,27 +1,22 @@ #!/bin/bash -# -# Copyright 2018 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. set -e set -x -# Google Container Builder automatically checks out all the code under the /workspace directory, -# but we actually want it to under the correct expected package in the GOPATH (/go) -# - 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 +# Google Container Builder automatically checks +# out all the code under the /workspace directory, +# but we actually want it to under the correct +# expected package in the GOPATH (/go) +# +# - 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 OWNER="sigs.k8s.io" REPO="kustomize" @@ -37,13 +32,14 @@ ln -sf $(pwd) $GO_PKG_PATH cd $GO_PKG_PATH -# NOTE: if snapshot is enabled, release is not published to GitHub and the build -# is available under workspace/dist directory. +# If snapshot is enabled, release is not published +# to GitHub and the build is available under +# workspace/dist directory. + SNAPSHOT="" # parse commandline args copied from the link below # https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa - while [[ $# -gt 0 ]] do key="$1" @@ -56,4 +52,8 @@ case $key in esac done -/goreleaser release --config=build/goreleaser.yaml --rm-dist --skip-validate ${SNAPSHOT} +/goreleaser \ + release \ + --config=build/goreleaser.yaml \ + --rm-dist \ + --skip-validate ${SNAPSHOT} diff --git a/build/cloudbuild.yaml b/build/cloudbuild.yaml index d2233d75e..e98b32e24 100644 --- a/build/cloudbuild.yaml +++ b/build/cloudbuild.yaml @@ -1,7 +1,7 @@ steps: - name: "gcr.io/cloud-builders/git" args: [fetch, --tags, --depth=100] -- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch" +- name: "gcr.io/kubebuilder/goreleaser_with_go_1.12.5:0.0.1" args: ["bash", "build/cloudbuild.sh"] secretEnv: ['GITHUB_TOKEN'] secrets: diff --git a/build/goreleaser.yaml b/build/goreleaser.yaml index 745aa578b..4e4c7dee7 100644 --- a/build/goreleaser.yaml +++ b/build/goreleaser.yaml @@ -1,5 +1,9 @@ -# This is an example goreleaser.yaml file with some sane defaults. -# Make sure to check the documentation at http://goreleaser.com +# Documentation at http://goreleaser.com +# By default, output sent to ./dist (see docs). +# +# 2019-may-29: windows removed because of error +# pkg/plugins/execplugin.go:111:2: undefined: syscall.Mkfifo +# project_name: kustomize builds: - main: ./kustomize.go @@ -8,11 +12,11 @@ builds: goos: - darwin - linux - - windows goarch: - amd64 env: - CGO_ENABLED=0 + - GO111MODULE=on checksum: name_template: 'checksums.txt' archive: diff --git a/build/localbuild.sh b/build/localbuild.sh index c0f7d770b..cd1adb282 100755 --- a/build/localbuild.sh +++ b/build/localbuild.sh @@ -7,6 +7,8 @@ # The script attempts to use cloudbuild configuration # to create a release "locally". # +# See https://cloud.google.com/cloud-build/docs/build-debug-locally +# # At the time of writing, # # https://pantheon.corp.google.com/cloud-build/triggers?project=kustomize-199618 @@ -25,23 +27,23 @@ # analogous via docker tricks. set -e -# set -x if [ -z ${GOPATH+x} ]; then echo GOPATH is unset; cannot proceed. exit 1 fi -WORK=$(mktemp -d) - pushd $GOPATH/src/sigs.k8s.io/kustomize pwd -echo "Building in $WORK" +# The first "step" in the following uses a special +# goreleaser container image that the kubebuilder folks made. +# TODO: On a rainy day, switch to something more standard. -cat </tmp/localbuild.yaml +config=$(mktemp) +cat <$config steps: -- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch" +- name: "gcr.io/kubebuilder/goreleaser_with_go_1.12.5:0.0.1" args: ["bash", "build/cloudbuild.sh", "--snapshot"] secretEnv: ['GITHUB_TOKEN'] secrets: @@ -50,18 +52,15 @@ secrets: GITHUB_TOKEN: CiQAyrREbPgXJOeT7M3t+WlxkhXwlMPudixBeiyWTjmLOMLqdK4SUQA0W+xUmDJKAhyfHCcwqSEzUn9OwKC7XAYcmwe0CCKTCbPbDgmioDK24q3LVapndXNvnnHvCjhOJNEr1o+P1DCF+LlzYV2YL8lP09rrKrslPg== EOF -# --substitutions=_GOOS=linux,_GOARCH=amd64 - -config=build/cloudbuild.yaml -config=/tmp/localbuild.yaml - -# See https://cloud.google.com/cloud-build/docs/build-debug-locally cloud-build-local \ --config=$config \ + --bind-mount-source \ --dryrun=false \ - --write-workspace=$WORK \ . -tree $WORK +# Print results of local build, which went to ./dist +echo "##########################################" +tree ./dist +echo "##########################################" popd