mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-02 09:47:06 +00:00
Merge pull request #120279 from BenTheElder/gotoolchain
handle GOTOOLCHAIN in kube::golang::verify_go_version
This commit is contained in:
@@ -540,6 +540,7 @@ function kube::build::run_build_command_ex() {
|
|||||||
--env "KUBE_CGO_OVERRIDES=' ${KUBE_CGO_OVERRIDES[*]:-} '"
|
--env "KUBE_CGO_OVERRIDES=' ${KUBE_CGO_OVERRIDES[*]:-} '"
|
||||||
--env "FORCE_HOST_GO=${FORCE_HOST_GO:-}"
|
--env "FORCE_HOST_GO=${FORCE_HOST_GO:-}"
|
||||||
--env "GO_VERSION=${GO_VERSION:-}"
|
--env "GO_VERSION=${GO_VERSION:-}"
|
||||||
|
--env "GOTOOLCHAIN=${GOTOOLCHAIN:-}"
|
||||||
--env "GOFLAGS=${GOFLAGS:-}"
|
--env "GOFLAGS=${GOFLAGS:-}"
|
||||||
--env "GOGCFLAGS=${GOGCFLAGS:-}"
|
--env "GOGCFLAGS=${GOGCFLAGS:-}"
|
||||||
--env "SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-}"
|
--env "SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-}"
|
||||||
|
@@ -466,14 +466,24 @@ kube::golang::create_gopath_tree() {
|
|||||||
kube::golang::verify_go_version() {
|
kube::golang::verify_go_version() {
|
||||||
# default GO_VERSION to content of .go-version
|
# default GO_VERSION to content of .go-version
|
||||||
GO_VERSION="${GO_VERSION:-"$(cat "${KUBE_ROOT}/.go-version")"}"
|
GO_VERSION="${GO_VERSION:-"$(cat "${KUBE_ROOT}/.go-version")"}"
|
||||||
# only setup go if we haven't set FORCE_HOST_GO, or `go version` doesn't match GO_VERSION
|
if [ "${GOTOOLCHAIN:-auto}" != 'auto' ]; then
|
||||||
if ! ([ -n "${FORCE_HOST_GO:-}" ] || \
|
# no-op, just respect GOTOOLCHAIN
|
||||||
(command -v go >/dev/null && [ "$(go version | cut -d' ' -f3)" = "go${GO_VERSION}" ])); then
|
:
|
||||||
|
elif [ -n "${FORCE_HOST_GO:-}" ]; then
|
||||||
|
# ensure existing host version is used, like before GOTOOLCHAIN existed
|
||||||
|
export GOTOOLCHAIN='local'
|
||||||
|
else
|
||||||
|
# otherwise, we want to ensure the go version matches GO_VERSION
|
||||||
|
GOTOOLCHAIN="go${GO_VERSION}"
|
||||||
|
export GOTOOLCHAIN
|
||||||
|
# if go is either not installed or too old to respect GOTOOLCHAIN then use gimme
|
||||||
|
if ! (command -v go >/dev/null && [ "$(go version | cut -d' ' -f3)" = "${GOTOOLCHAIN}" ]); then
|
||||||
export GIMME_ENV_PREFIX=${GIMME_ENV_PREFIX:-"${KUBE_OUTPUT}/.gimme/envs"}
|
export GIMME_ENV_PREFIX=${GIMME_ENV_PREFIX:-"${KUBE_OUTPUT}/.gimme/envs"}
|
||||||
export GIMME_VERSION_PREFIX=${GIMME_VERSION_PREFIX:-"${KUBE_OUTPUT}/.gimme/versions"}
|
export GIMME_VERSION_PREFIX=${GIMME_VERSION_PREFIX:-"${KUBE_OUTPUT}/.gimme/versions"}
|
||||||
# eval because the output of this is shell to set PATH etc.
|
# eval because the output of this is shell to set PATH etc.
|
||||||
eval "$("${KUBE_ROOT}/third_party/gimme/gimme" "${GO_VERSION}")"
|
eval "$("${KUBE_ROOT}/third_party/gimme/gimme" "${GO_VERSION}")"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "$(command -v go)" ]]; then
|
if [[ -z "$(command -v go)" ]]; then
|
||||||
kube::log::usage_from_stdin <<EOF
|
kube::log::usage_from_stdin <<EOF
|
||||||
|
Reference in New Issue
Block a user