diff --git a/.bazelrc b/.bazelrc index 0ceb744e25592..5743edc876146 100644 --- a/.bazelrc +++ b/.bazelrc @@ -4,3 +4,6 @@ test --test_output=errors # Retry tests up to 3 times if they fail. test --flaky_test_attempts=3 + +# Include git version info +build --workspace_status_command hack/print-workspace-status.sh diff --git a/BUILD.bazel b/BUILD.bazel index 339affffa457c..6ab284d64cd8b 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -52,3 +52,10 @@ filegroup( ], tags = ["automanaged"], ) + +genrule( + name = "save_git_version", + outs = ["version"], + cmd = "grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt | cut -d' ' -f2 >$@", + stamp = 1, +) diff --git a/build/release-tars/BUILD b/build/release-tars/BUILD index 2acc37865c254..67cc91af10a72 100644 --- a/build/release-tars/BUILD +++ b/build/release-tars/BUILD @@ -211,7 +211,7 @@ pkg_tar( name = "kubernetes", extension = "tar.gz", files = [ - # TODO: the version file + "//:version", "//:README.md", "//:Vagrantfile", "//cluster:all-srcs", diff --git a/hack/print-workspace-status.sh b/hack/print-workspace-status.sh new file mode 100755 index 0000000000000..4a5951ce1ea1a --- /dev/null +++ b/hack/print-workspace-status.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Copyright 2017 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. + +# This command is used by bazel as the workspace_status_command +# to implement build stamping with git information. + +set -o errexit +set -o nounset +set -o pipefail + +export KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. + +source "${KUBE_ROOT}/hack/lib/version.sh" +kube::version::get_version_vars + +# Prefix with STABLE_ so that these values are saved to stable-status.txt +# instead of volatile-status.txt. +# Stamped rules will be retriggered by changes to stable-status.txt, but not by +# changes to volatile-status.txt. +cat <