Files
kustomize/releasing/localbuild.sh
Jeffrey Regan 4eb2d5bcc2 Three builders.
2019-10-07 15:40:36 -07:00

79 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Usage - from the repository root, enter
#
# ./releasing/localbuild.sh (kustomize|pluginator)
#
# 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
#
# has a trigger such that whenever a git tag is
# applied to the kustomize repo, the cloud builder
# reads the repository-relative file
#
# releasing/cloudbuild_(kustomize|pluginator).yaml
#
# Inside this yaml file is a reference to the script
#
# releasing/cloudbuild.sh
#
# which runs goreleaser from the proper directory, with the
# proper config.
#
# The script you are reading now does something
# analogous via docker tricks.
set -e
module=$1
case "$module" in
api)
echo "goreleaser only releases 'main' packages (executables)"
echo "See https://github.com/goreleaser/goreleaser/issues/981"
exit 1
;;
kustomize)
;;
pluginator)
;;
*)
echo "Don't recognize module=$module"
exit 1
;;
esac
config=$(mktemp)
cp releasing/cloudbuild_${module}.yaml $config
# Delete the cloud-builders/git step.
sed -i '2,3d' $config
# Add the --snapshot flag to suppress the
# github release and leave the build output
# in the kustomize/dist directory.
sed -i 's|"\]$|", "--snapshot"]|' \
$config
echo "Executing cloud-build-local with:"
echo "========================="
cat $config
echo "========================="
cloud-build-local \
--config=$config \
--bind-mount-source \
--dryrun=false \
.
echo " "
echo "Result of local build:"
echo "##########################################"
tree ./kustomize/dist
echo "##########################################"