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:
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
|
||||||
|
Reference in New Issue
Block a user