From d6713cfa8a653b7e7976712d879ae8f63406143d Mon Sep 17 00:00:00 2001 From: Mario Valderrama Date: Thu, 5 Dec 2024 20:51:55 +0100 Subject: [PATCH] Squashed 'release-tools/' changes from 227577e0..734c2b95 https://github.com/kubernetes-csi/csi-release-tools/commit/734c2b95 Merge https://github.com/kubernetes-csi/csi-release-tools/pull/265 from Rakshith-R/consider-main-branch https://github.com/kubernetes-csi/csi-release-tools/commit/f95c855b Merge https://github.com/kubernetes-csi/csi-release-tools/pull/262 from huww98/golang-toolchain https://github.com/kubernetes-csi/csi-release-tools/commit/3c8d966f Treat main branch as equivalent to master branch https://github.com/kubernetes-csi/csi-release-tools/commit/e31de525 Merge https://github.com/kubernetes-csi/csi-release-tools/pull/261 from huww98/golang https://github.com/kubernetes-csi/csi-release-tools/commit/fd153a9e Bump golang to 1.23.1 https://github.com/kubernetes-csi/csi-release-tools/commit/a8b3d050 pull-test.sh: fix "git subtree pull" errors https://github.com/kubernetes-csi/csi-release-tools/commit/6b05f0fc use new GOTOOLCHAIN env to manage go version git-subtree-dir: release-tools git-subtree-split: 734c2b950c4b31f64b63052c64ffa5929d1c9b97 --- build.make | 9 +++++---- prow.sh | 18 +++++++++--------- pull-test.sh | 5 +++++ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/build.make b/build.make index 5d3079308..39a34777d 100644 --- a/build.make +++ b/build.make @@ -45,9 +45,10 @@ REV=$(shell git describe --long --tags --match='v*' --dirty 2>/dev/null || git r # Determined dynamically. IMAGE_TAGS= -# A "canary" image gets built if the current commit is the head of the remote "master" branch. +# A "canary" image gets built if the current commit is the head of the remote "master" or "main" branch. # That branch does not exist when building some other branch in TravisCI. IMAGE_TAGS+=$(shell if [ "$$(git rev-list -n1 HEAD)" = "$$(git rev-list -n1 origin/master 2>/dev/null)" ]; then echo "canary"; fi) +IMAGE_TAGS+=$(shell if [ "$$(git rev-list -n1 HEAD)" = "$$(git rev-list -n1 origin/main 2>/dev/null)" ]; then echo "canary"; fi) # A "X.Y.Z-canary" image gets built if the current commit is the head of a "origin/release-X.Y.Z" branch. # The actual suffix does not matter, only the "release-" prefix is checked. @@ -143,7 +144,7 @@ DOCKER_BUILDX_CREATE_ARGS ?= # Windows binaries can be built before adding a Dockerfile for it. # # BUILD_PLATFORMS determines which individual images are included in the multiarch image. -# PULL_BASE_REF must be set to 'master', 'release-x.y', or a tag name, and determines +# PULL_BASE_REF must be set to 'master', 'main', 'release-x.y', or a tag name, and determines # the tag for the resulting multiarch image. $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% set -ex; \ @@ -191,7 +192,7 @@ $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% done; \ docker manifest push -p $(IMAGE_NAME):$$tag; \ }; \ - if [ $(PULL_BASE_REF) = "master" ]; then \ + if [ $(PULL_BASE_REF) = "master" ] || [ $(PULL_BASE_REF) = "main" ]; then \ : "creating or overwriting canary image"; \ pushMultiArch canary; \ elif echo $(PULL_BASE_REF) | grep -q -e 'release-*' ; then \ @@ -209,7 +210,7 @@ $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% .PHONY: check-pull-base-ref check-pull-base-ref: if ! [ "$(PULL_BASE_REF)" ]; then \ - echo >&2 "ERROR: PULL_BASE_REF must be set to 'master', 'release-x.y', or a tag name."; \ + echo >&2 "ERROR: PULL_BASE_REF must be set to 'master', 'main', 'release-x.y', or a tag name."; \ exit 1; \ fi diff --git a/prow.sh b/prow.sh index df8c61502..c2d8c58d1 100755 --- a/prow.sh +++ b/prow.sh @@ -86,7 +86,7 @@ configvar CSI_PROW_BUILD_PLATFORMS "linux amd64 amd64; linux ppc64le ppc64le -pp # which is disabled with GOFLAGS=-mod=vendor). configvar GOFLAGS_VENDOR "$( [ -d vendor ] && echo '-mod=vendor' )" "Go flags for using the vendor directory" -configvar CSI_PROW_GO_VERSION_BUILD "1.22.5" "Go version for building the component" # depends on component's source code +configvar CSI_PROW_GO_VERSION_BUILD "1.23.1" "Go version for building the component" # depends on component's source code configvar CSI_PROW_GO_VERSION_E2E "" "override Go version for building the Kubernetes E2E test suite" # normally doesn't need to be set, see install_e2e configvar CSI_PROW_GO_VERSION_SANITY "${CSI_PROW_GO_VERSION_BUILD}" "Go version for building the csi-sanity test suite" # depends on CSI_PROW_SANITY settings below configvar CSI_PROW_GO_VERSION_KIND "${CSI_PROW_GO_VERSION_BUILD}" "Go version for building 'kind'" # depends on CSI_PROW_KIND_VERSION below @@ -425,7 +425,7 @@ die () { exit 1 } -# Ensure that PATH has the desired version of the Go tools, then run command given as argument. +# Ensure we use the desired version of the Go tools, then run command given as argument. # Empty parameter uses the already installed Go. In Prow, that version is kept up-to-date by # bumping the container image regularly. run_with_go () { @@ -433,15 +433,15 @@ run_with_go () { version="$1" shift - if ! [ "$version" ] || go version 2>/dev/null | grep -q "go$version"; then - run "$@" - else - if ! [ -d "${CSI_PROW_WORK}/go-$version" ]; then - run curl --fail --location "https://dl.google.com/go/go$version.linux-amd64.tar.gz" | tar -C "${CSI_PROW_WORK}" -zxf - || die "installation of Go $version failed" - mv "${CSI_PROW_WORK}/go" "${CSI_PROW_WORK}/go-$version" + if [ "$version" ]; then + version=go$version + if [ "$(GOTOOLCHAIN=$version go version | cut -d' ' -f3)" != "$version" ]; then + die "Please install Go 1.21+" fi - PATH="${CSI_PROW_WORK}/go-$version/bin:$PATH" run "$@" + else + version=local fi + GOTOOLCHAIN=$version run "$@" } # Ensure that we have the desired version of kind. diff --git a/pull-test.sh b/pull-test.sh index 5ea051eca..80317720d 100755 --- a/pull-test.sh +++ b/pull-test.sh @@ -20,6 +20,11 @@ set -ex +# Prow checks out repos with --filter=blob:none. This breaks +# "git subtree pull" unless we enable fetching missing file content. +GIT_NO_LAZY_FETCH=0 +export GIT_NO_LAZY_FETCH + # It must be called inside the updated csi-release-tools repo. CSI_RELEASE_TOOLS_DIR="$(pwd)"