summaryrefslogtreecommitdiffstats
path: root/hack/presubmit.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hack/presubmit.sh')
-rwxr-xr-xhack/presubmit.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/hack/presubmit.sh b/hack/presubmit.sh
new file mode 100755
index 0000000..25afe44
--- /dev/null
+++ b/hack/presubmit.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+
+# We can't install in the current directory without changing the current module.
+TMP_DIR="$(mktemp -d)"
+export PATH="${PATH}:${TMP_DIR}/bin"
+export GOPATH="${TMP_DIR}"
+pushd ${TMP_DIR}
+trap popd EXIT
+go install honnef.co/go/tools/cmd/staticcheck@v0.3.3
+popd
+
+pushd ${PROJECT_ROOT}
+trap popd EXIT
+
+staticcheck ./pkg/...
+
+# Verify that all source files are correctly formatted.
+find . -name "*.go" | grep -v vendor/ | xargs gofmt -d -e -l
+
+# Verify that generated crane docs are up-to-date.
+mkdir -p /tmp/gendoc && go run cmd/crane/help/main.go --dir /tmp/gendoc && diff -Naur /tmp/gendoc/ cmd/crane/doc/
+
+go test ./...
+./pkg/name/internal/must_test.sh
+
+./cmd/crane/rebase_test.sh
+
+pushd ${PROJECT_ROOT}/cmd/krane
+trap popd EXIT
+go build ./...
+
+pushd ${PROJECT_ROOT}/pkg/authn/k8schain
+trap popd EXIT
+go build ./...
+
+pushd ${PROJECT_ROOT}/pkg/authn/kubernetes
+trap popd EXIT
+go test ./...