#!/usr/bin/env bash # Copyright The Helm Authors. All rights reserved. # # 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 -o errexit set -o nounset set -o pipefail SCRIPT_DIR=$(dirname -- "$(readlink -e "${BASH_SOURCE[0]}" || realpath "${BASH_SOURCE[0]}")") readonly SCRIPT_DIR show_help() { cat << EOF Usage: $(basename "$0") Build ct using Goreleaser. -h, --help Display help -d, --debug Display verbose output and run Goreleaser with --debug -r, --release Create a release using Goreleaser. This includes the creation of a GitHub release and building and pushing the Docker image. If this flag is not specified, Goreleaser is run with --snapshot EOF } main() { local debug= local release= while :; do case "${1:-}" in -h | --help) show_help exit ;; -d | --debug) debug=true ;; -r | --release) release=true ;; *) break ;; esac shift done local goreleaser_args=(--clean) if [[ -n "$debug" ]]; then goreleaser_args+=(--debug) set -x fi if [[ -z "$release" ]]; then goreleaser_args+=(--snapshot --skip=sign) fi pushd "$SCRIPT_DIR" > /dev/null go test -race ./... goreleaser "${goreleaser_args[@]}" popd > /dev/null } main "$@"