Merge pull request #19 from pohly/go-mod-vendor
build.make: allow repos to use 'go mod' for vendoring
This commit is contained in:
33
build.make
33
build.make
@@ -118,14 +118,39 @@ test-fmt:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# This test only runs when dep >= 0.5 is installed, which is the case for the CI setup.
|
# This test only runs when dep >= 0.5 is installed, which is the case for the CI setup.
|
||||||
|
# When using 'go mod', we allow the test to be skipped in the Prow CI under some special
|
||||||
|
# circumstances, because it depends on accessing all remote repos and thus
|
||||||
|
# running it all the time would defeat the purpose of vendoring:
|
||||||
|
# - not handling a PR or
|
||||||
|
# - the fabricated merge commit leaves go.mod, go.sum and vendor dir unchanged
|
||||||
|
# - release-tools also didn't change (changing rules or Go version might lead to
|
||||||
|
# a different result and thus must be tested)
|
||||||
.PHONY: test-vendor
|
.PHONY: test-vendor
|
||||||
test: test-vendor
|
test: test-vendor
|
||||||
test-vendor:
|
test-vendor:
|
||||||
@ echo; echo "### $@:"
|
@ echo; echo "### $@:"
|
||||||
@ case "$$(dep version 2>/dev/null | grep 'version *:')" in \
|
@ if [ -f Gopkg.toml ]; then \
|
||||||
*v0.[56789]*) dep check && echo "vendor up-to-date" || false;; \
|
echo "Repo uses 'dep' for vendoring."; \
|
||||||
*) echo "skipping check, dep >= 0.5 required";; \
|
case "$$(dep version 2>/dev/null | grep 'version *:')" in \
|
||||||
esac
|
*v0.[56789]*) dep check && echo "vendor up-to-date" || false;; \
|
||||||
|
*) echo "skipping check, dep >= 0.5 required";; \
|
||||||
|
esac; \
|
||||||
|
else \
|
||||||
|
echo "Repo uses 'go mod' for vendoring."; \
|
||||||
|
if [ "$${JOB_NAME}" ] && \
|
||||||
|
( [ "$${JOB_TYPE}" != "presubmit" ] || \
|
||||||
|
[ $$(git diff "${PULL_BASE_SHA}..HEAD" -- go.mod go.sum vendor release-tools | wc -l) -eq 0 ] ); then \
|
||||||
|
echo "Skipping vendor check because the Prow pre-submit job does not change vendoring."; \
|
||||||
|
elif ! GO111MODULE=on go mod vendor; then \
|
||||||
|
echo "ERROR: vendor check failed."; \
|
||||||
|
false; \
|
||||||
|
elif [ $$(git status --porcelain -- vendor | wc -l) -gt 0 ]; then \
|
||||||
|
echo "ERROR: vendor directory *not* up-to-date, it did get modified by 'GO111MODULE=on go mod vendor':"; \
|
||||||
|
git status -- vendor; \
|
||||||
|
git diff -- vendor; \
|
||||||
|
false; \
|
||||||
|
fi; \
|
||||||
|
fi;
|
||||||
|
|
||||||
.PHONY: test-subtree
|
.PHONY: test-subtree
|
||||||
test: test-subtree
|
test: test-subtree
|
||||||
|
Reference in New Issue
Block a user