From bb9b3163ee170ae15e2b155c3aae7f361c0af3be Mon Sep 17 00:00:00 2001 From: Jeff Regan Date: Tue, 28 May 2019 17:06:44 -0700 Subject: [PATCH] Add script to run cloud build 'locally'. --- build/{build.sh => cloudbuild.sh} | 0 build/cloudbuild.yaml | 17 +------- build/cloudbuild_local.yaml | 30 -------------- build/localbuild.sh | 67 +++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 46 deletions(-) rename build/{build.sh => cloudbuild.sh} (100%) delete mode 100644 build/cloudbuild_local.yaml create mode 100755 build/localbuild.sh diff --git a/build/build.sh b/build/cloudbuild.sh similarity index 100% rename from build/build.sh rename to build/cloudbuild.sh diff --git a/build/cloudbuild.yaml b/build/cloudbuild.yaml index c843ecadb..d2233d75e 100644 --- a/build/cloudbuild.yaml +++ b/build/cloudbuild.yaml @@ -1,23 +1,8 @@ -# 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. - -# TODO(droot): add instructions for running in production. steps: - name: "gcr.io/cloud-builders/git" args: [fetch, --tags, --depth=100] - name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch" - args: ["bash", "build/build.sh"] + args: ["bash", "build/cloudbuild.sh"] secretEnv: ['GITHUB_TOKEN'] secrets: - kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token diff --git a/build/cloudbuild_local.yaml b/build/cloudbuild_local.yaml deleted file mode 100644 index f1eb5bb2c..000000000 --- a/build/cloudbuild_local.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# 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. - -# Instructions to run locally: -# Download google container builder: https://github.com/kubernetes-sigs/container-builder-local -# Set you GOOS and GOARCH vars to match your system -# Set OUTPUT to the location to write the directory containing the tar.gz -# $ container-builder-local --config=build/cloudbuild_local.yaml --dryrun=false \ -# --substitutions=_GOOS=$GOOS,_GOARCH=$GOARCH --write-workspace=$OUTPUT . -# Release tar will be in $OUTPUT - -steps: -- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch" - args: ["bash", "build/build.sh", "--snapshot"] - 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== diff --git a/build/localbuild.sh b/build/localbuild.sh new file mode 100755 index 000000000..c0f7d770b --- /dev/null +++ b/build/localbuild.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Usage +# +# ./build/localbuild.sh +# +# The script attempts to use cloudbuild configuration +# to create a release "locally". +# +# At the time of writing, +# +# https://pantheon.corp.google.com/cloud-build/triggers?project=kustomize-199618 +# +# has a trigger such that whenever a git tag is +# applied to the kustomize repo, the cloud builder +# reads the repository-relative file +# +# build/cloudbuild.yaml +# +# Inside this yaml file is a reference to the script +# +# build/cloudbuild.sh +# +# The script you are reading now does something +# 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" + +cat </tmp/localbuild.yaml +steps: +- name: "gcr.io/kustomize-199618/golang_with_goreleaser:1.10-stretch" + args: ["bash", "build/cloudbuild.sh", "--snapshot"] + 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== +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 \ + --dryrun=false \ + --write-workspace=$WORK \ + . + +tree $WORK + +popd