diff --git a/Makefile b/Makefile index 095de3b462..8c2d218ad0 100644 --- a/Makefile +++ b/Makefile @@ -460,13 +460,13 @@ verify-hashes: # ci target is for developers, it aims to cover all the CI jobs # verify-gendocs will call kops target .PHONY: ci -ci: govet verify-gofmt verify-crds verify-gomod verify-goimports verify-boilerplate verify-bazel verify-misspelling verify-shellcheck verify-staticcheck verify-terraform nodeup examples test | verify-gendocs verify-apimachinery +ci: govet verify-gofmt verify-crds verify-gomod verify-goimports verify-boilerplate verify-bazel verify-versions verify-misspelling verify-shellcheck verify-staticcheck verify-terraform nodeup examples test | verify-gendocs verify-apimachinery echo "Done!" # we skip tasks that rely on bazel and are covered by other jobs # verify-gofmt: uses bazel, covered by pull-kops-verify .PHONY: quick-ci -quick-ci: verify-crds verify-goimports govet verify-boilerplate verify-bazel verify-misspelling verify-shellcheck | verify-gendocs verify-apimachinery +quick-ci: verify-crds verify-goimports govet verify-boilerplate verify-bazel verify-versions verify-misspelling verify-shellcheck | verify-gendocs verify-apimachinery echo "Done!" .PHONY: pr @@ -539,6 +539,10 @@ verify-generate: verify-crds verify-crds: hack/verify-crds.sh +.PHONY: verify-versions +verify-versions: + hack/verify-versions.sh + # ----------------------------------------------------- # bazel targets diff --git a/hack/verify-versions.sh b/hack/verify-versions.sh new file mode 100755 index 0000000000..cf379f4018 --- /dev/null +++ b/hack/verify-versions.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# Copyright 2019 The Kubernetes Authors. +# +# 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 + +. "$(dirname "${BASH_SOURCE[0]}")/common.sh" + +cd "${KOPS_ROOT}" + +KOPS_RELEASE_VERSION=$(grep 'KOPS_RELEASE_VERSION\s*=' version.go | awk '{print $3}' | sed -e 's_"__g') +"$(dirname "${BASH_SOURCE[0]}")/set-version" "${KOPS_RELEASE_VERSION}" + +changed_files=$(git status --porcelain --untracked-files=no || true) +if [ -n "${changed_files}" ]; then + echo "Detected that version generation is needed" + echo "changed files:" + printf "%s" "${changed_files}\n" + echo "git diff:" + git --no-pager diff + echo "To fix: run 'hack/set-version ${KOPS_RELEASE_VERSION}'" + exit 1 +fi +