Build k8s using latest commit of golang

Run "gimme master" and use the newly built binaries. Adjust
GOROOT_BOOTSTRAP so we can use the golang that is already
on disk to build the new commit from golang.

To enable this, edit `.go-version` and set the version to
```
devel
```

and then run `make quick-release` (for example)

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
Davanum Srinivas
2025-06-09 14:42:44 -04:00
parent 11c5a45171
commit c85ac59df4
2 changed files with 16 additions and 2 deletions

View File

@@ -524,6 +524,18 @@ kube::golang::internal::verify_go_version() {
if [ "${GOTOOLCHAIN:-auto}" != 'auto' ]; then
# no-op, just respect GOTOOLCHAIN
:
elif [ "${GO_VERSION:-}" == 'devel' ]; then
# get the latest master version of Go, build and use that version
export GOTOOLCHAIN='local'
if [[ ! -f "${KUBE_ROOT}/.gimme/envs/gomaster.env" && ! -f "${HOME}/.gimme/envs/gomaster.env" ]]; then
GOROOT_BOOTSTRAP="${GOROOT_BOOTSTRAP:-/usr/local/go}" "${KUBE_ROOT}/third_party/gimme/gimme" "master" >/dev/null 2>&1
fi
if [[ -f "${KUBE_ROOT}/.gimme/envs/gomaster.env" ]]; then
source "${KUBE_ROOT}/.gimme/envs/gomaster.env"
elif [[ -f "${HOME}/.gimme/envs/gomaster.env" ]]; then
source "${HOME}/.gimme/envs/gomaster.env"
fi
elif [ -n "${FORCE_HOST_GO:-}" ]; then
# ensure existing host version is used, like before GOTOOLCHAIN existed
export GOTOOLCHAIN='local'

View File

@@ -314,8 +314,10 @@ _setup_bootstrap() {
# _compile "dir"
_compile() {
(
if grep -q GOROOT_BOOTSTRAP "${1}/src/make.bash" &>/dev/null; then
_setup_bootstrap || return 1
if [[ -z "${GOROOT_BOOTSTRAP}" ]]; then
if grep -q GOROOT_BOOTSTRAP "${1}/src/make.bash" &>/dev/null; then
_setup_bootstrap || return 1
fi
fi
cd "${1}"
if [[ -d .git ]]; then