prow.sh: use vendor directory if available
This avoids dependencies on the Go module cache or the upstream code hosting.
This commit is contained in:
		
							parent
							
								
									a53bd4c46e
								
							
						
					
					
						commit
						23df4aef51
					
				
							
								
								
									
										11
									
								
								build.make
								
								
								
								
							
							
						
						
									
										11
									
								
								build.make
								
								
								
								
							|  | @ -22,6 +22,9 @@ | ||||||
| # including build.make. | # including build.make. | ||||||
| REGISTRY_NAME=quay.io/k8scsi | REGISTRY_NAME=quay.io/k8scsi | ||||||
| 
 | 
 | ||||||
|  | # Can be set to -mod=vendor to ensure that the "vendor" directory is used. | ||||||
|  | GOFLAGS_VENDOR= | ||||||
|  | 
 | ||||||
| # Revision that gets built into each binary via the main.version | # Revision that gets built into each binary via the main.version | ||||||
| # string. Uses the `git describe` output based on the most recent | # string. Uses the `git describe` output based on the most recent | ||||||
| # version tag with a short revision suffix or, if nothing has been | # version tag with a short revision suffix or, if nothing has been | ||||||
|  | @ -64,9 +67,9 @@ ARCH := $(if $(GOARCH),$(GOARCH),$(shell go env GOARCH)) | ||||||
| 
 | 
 | ||||||
| build-%: check-go-version-go | build-%: check-go-version-go | ||||||
| 	mkdir -p bin | 	mkdir -p bin | ||||||
| 	CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-X main.version=$(REV) -extldflags "-static"' -o ./bin/$* ./cmd/$* | 	CGO_ENABLED=0 GOOS=linux go build $(GOFLAGS_VENDOR) -a -ldflags '-X main.version=$(REV) -extldflags "-static"' -o ./bin/$* ./cmd/$* | ||||||
| 	if [ "$$ARCH" = "amd64" ]; then \ | 	if [ "$$ARCH" = "amd64" ]; then \ | ||||||
| 		CGO_ENABLED=0 GOOS=windows go build -a -ldflags '-X main.version=$(REV) -extldflags "-static"' -o ./bin/$*.exe ./cmd/$* ; \ | 		CGO_ENABLED=0 GOOS=windows go build $(GOFLAGS_VENDOR) -a -ldflags '-X main.version=$(REV) -extldflags "-static"' -o ./bin/$*.exe ./cmd/$* ; \ | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| container-%: build-% | container-%: build-% | ||||||
|  | @ -103,13 +106,13 @@ test: check-go-version-go | ||||||
| test: test-go | test: test-go | ||||||
| test-go: | test-go: | ||||||
| 	@ echo; echo "### $@:" | 	@ echo; echo "### $@:" | ||||||
| 	go test `go list ./... | grep -v -e 'vendor' -e '/test/e2e$$' $(TEST_GO_FILTER_CMD)` $(TESTARGS) | 	go test $(GOFLAGS_VENDOR) `go list $(GOFLAGS_VENDOR) ./... | grep -v -e 'vendor' -e '/test/e2e$$' $(TEST_GO_FILTER_CMD)` $(TESTARGS) | ||||||
| 
 | 
 | ||||||
| .PHONY: test-vet | .PHONY: test-vet | ||||||
| test: test-vet | test: test-vet | ||||||
| test-vet: | test-vet: | ||||||
| 	@ echo; echo "### $@:" | 	@ echo; echo "### $@:" | ||||||
| 	go vet `go list ./... | grep -v vendor $(TEST_VET_FILTER_CMD)` | 	go test $(GOFLAGS_VENDOR) `go list $(GOFLAGS_VENDOR) ./... | grep -v vendor $(TEST_VET_FILTER_CMD)` | ||||||
| 
 | 
 | ||||||
| .PHONY: test-fmt | .PHONY: test-fmt | ||||||
| test: test-fmt | test: test-fmt | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								prow.sh
								
								
								
								
							
							
						
						
									
										12
									
								
								prow.sh
								
								
								
								
							|  | @ -85,6 +85,12 @@ get_versioned_variable () { | ||||||
|     echo "$value" |     echo "$value" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # If we have a vendor directory, then use it. We must be careful to only | ||||||
|  | # use this for "make" invocations inside the project's repo itself because | ||||||
|  | # setting it globally can break other go usages (like "go get <some command>" | ||||||
|  | # which is disabled with GOFLAGS=-mod=vendor). | ||||||
|  | configvar GOFLAGS_VENDOR "$( [ -d vendor ] && echo '-mod=vendor' )" "Go flags for using the vendor directory" | ||||||
|  | 
 | ||||||
| # Go versions can be specified seperately for different tasks | # Go versions can be specified seperately for different tasks | ||||||
| # If the pre-installed Go is missing or a different | # If the pre-installed Go is missing or a different | ||||||
| # version, the required version here will get installed | # version, the required version here will get installed | ||||||
|  | @ -928,7 +934,7 @@ main () { | ||||||
|     images= |     images= | ||||||
|     if ${CSI_PROW_BUILD_JOB}; then |     if ${CSI_PROW_BUILD_JOB}; then | ||||||
|         # A successful build is required for testing. |         # A successful build is required for testing. | ||||||
|         run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make all || die "'make all' failed" |         run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make all "GOFLAGS_VENDOR=${GOFLAGS_VENDOR}" || die "'make all' failed" | ||||||
|         # We don't want test failures to prevent E2E testing below, because the failure |         # We don't want test failures to prevent E2E testing below, because the failure | ||||||
|         # might have been minor or unavoidable, for example when experimenting with |         # might have been minor or unavoidable, for example when experimenting with | ||||||
|         # changes in "release-tools" in a PR (that fails the "is release-tools unmodified" |         # changes in "release-tools" in a PR (that fails the "is release-tools unmodified" | ||||||
|  | @ -938,13 +944,13 @@ main () { | ||||||
|                 warn "installing 'dep' failed, cannot test vendoring" |                 warn "installing 'dep' failed, cannot test vendoring" | ||||||
|                 ret=1 |                 ret=1 | ||||||
|             fi |             fi | ||||||
|             if ! run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make -k test 2>&1 | make_test_to_junit; then |             if ! run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make -k test "GOFLAGS_VENDOR=${GOFLAGS_VENDOR}" 2>&1 | make_test_to_junit; then | ||||||
|                 warn "'make test' failed, proceeding anyway" |                 warn "'make test' failed, proceeding anyway" | ||||||
|                 ret=1 |                 ret=1 | ||||||
|             fi |             fi | ||||||
|         fi |         fi | ||||||
|         # Required for E2E testing. |         # Required for E2E testing. | ||||||
|         run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make container || die "'make container' failed" |         run_with_go "${CSI_PROW_GO_VERSION_BUILD}" make container "GOFLAGS_VENDOR=${GOFLAGS_VENDOR}" || die "'make container' failed" | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     if tests_need_kind; then |     if tests_need_kind; then | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue