
Now it is possible to push these variables through ldflags: - gitMajor - gitMinor - gitVersion (from latest annotated tag, output of git describe) - gitCommit (renamed commitFromGit, intended to have the full sha1) - gitTreeState (either "clean" or "dirty") These are spawned into its separate source file, since they are meant to be updated separately when a new version is released. Also use the notation vX.Y+ for when git information is not present. (This is consistent with the kernel build, e.g. Linux 3.15+ means its version is >= 3.15 and < 3.16.) v2: Added comments to the individual fields in pkg/version/base.go Tested: - Built it and checked the -version output: $ hack/build-go.sh $ output/go/bin/kubelet -version Kubernetes version 0.1+, build c328679ef8aa Signed-off-by: Filipe Brandenburger <filbranden@google.com>
49 lines
1.6 KiB
Bash
Executable File
49 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright 2014 Google Inc. All rights reserved.
|
|
#
|
|
# 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 script sets up a go workspace locally and builds all go components.
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
hackdir=$(CDPATH="" cd $(dirname $0); pwd)
|
|
|
|
# Set the environment variables required by the build.
|
|
. "${hackdir}/config-go.sh"
|
|
|
|
# Go to the top of the tree.
|
|
cd "${KUBE_REPO_ROOT}"
|
|
|
|
# Fetch the version.
|
|
version=$(gitcommit)
|
|
|
|
if [[ $# == 0 ]]; then
|
|
# Update $@ with the default list of targets to build.
|
|
set -- cmd/proxy cmd/apiserver cmd/controller-manager cmd/kubelet cmd/kubecfg plugin/cmd/scheduler
|
|
fi
|
|
|
|
binaries=()
|
|
for arg; do
|
|
binaries+=("${KUBE_GO_PACKAGE}/${arg}")
|
|
done
|
|
|
|
# Note that the flags to 'go build' are duplicated in the salt build setup for
|
|
# our cluster deploy. If we add more command line options to our standard build
|
|
# we'll want to duplicate them there. As we move to distributing pre- built
|
|
# binaries we can eliminate this duplication.
|
|
go install -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit '${version}'" "${binaries[@]}"
|