Przeglądaj źródła

Add a validate-vendor script

Makes sure that if ./hack/vendor.sh has been updated, it has been used
to update the vendor folder.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Vincent Demeester 9 lat temu
rodzic
commit
4c22c566e2
3 zmienionych plików z 29 dodań i 1 usunięć
  1. 1 1
      Makefile
  2. 1 0
      hack/make.sh
  3. 27 0
      hack/make/validate-vendor

+ 1 - 1
Makefile

@@ -93,4 +93,4 @@ test-unit: build
 	$(DOCKER_RUN_DOCKER) hack/make.sh test-unit
 	$(DOCKER_RUN_DOCKER) hack/make.sh test-unit
 
 
 validate: build
 validate: build
-	$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet
+	$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet validate-vendor

+ 1 - 0
hack/make.sh

@@ -51,6 +51,7 @@ DEFAULT_BUNDLES=(
 	validate-test
 	validate-test
 	validate-toml
 	validate-toml
 	validate-vet
 	validate-vet
+	validate-vendor
 
 
 	binary
 	binary
 	dynbinary
 	dynbinary

+ 27 - 0
hack/make/validate-vendor

@@ -0,0 +1,27 @@
+#!/bin/bash
+
+source "${MAKEDIR}/.validate"
+
+IFS=$'\n'
+files=( $(validate_diff --diff-filter=ACMR --name-only -- 'hack/vendor.sh' 'hack/.vendor-helpers.sh' 'vendor/' || true) ) 
+unset IFS
+
+if [ ${#files[@]} -gt 0 ]; then
+	# We run vendor.sh to and see if we have a diff afterwards
+	./hack/vendor.sh >/dev/null
+	# Let see if the working directory is clean
+	diffs="$(git status --porcelain -- vendor 2>/dev/null)"
+	if [ "$diffs" ]; then
+		{
+			echo 'The result of ./hack/vendor.sh differs'
+			echo
+			echo "$diffs"
+			echo
+			echo 'Please vendor your package with ./hack/vendor.sh.'
+			echo
+		} >&2
+		false
+	else
+		echo 'Congratulations! All vendoring changes are done the right way.'
+	fi
+fi