sigs.k8s.io/prow@v0.0.0-20240503223140-c5e374dc7eb1/hack/make-rules/go-run/arbitrary.sh (about) 1 #!/usr/bin/env bash 2 # Copyright 2022 The Kubernetes Authors. 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 16 # arbitrary.sh runs arbitry go command, ensures go version is from .go-version 17 # Usage: ./arbitrary.sh <go args> 18 # Example: ./arbitrary.sh build prow/cmd/crier 19 20 set -o nounset 21 set -o errexit 22 set -o pipefail 23 24 # cd to the repo root and setup go 25 REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd -P)" 26 cd "${REPO_ROOT}" 27 source hack/build/setup-go.sh 28 29 # build gotestsum 30 cd 'hack/tools' 31 go build -o "${REPO_ROOT}/_bin/gotestsum" gotest.tools/gotestsum 32 # Make sure the following is ran from root dir 33 cd "${REPO_ROOT}" 34 35 ( 36 set -x; 37 go "$@" 38 )