diff --git a/build/cmd.sh b/build/cmd.sh index f13f1068f..6ff548b2b 100755 --- a/build/cmd.sh +++ b/build/cmd.sh @@ -40,6 +40,8 @@ bindata_modtime=1522279343 bindata_out="pkg/tools/bindata.go" bindata_dir="deploy/data" bindata_pkg="tools" +ldflags=() +go_package=github.com/Mirantis/virtlet function image_tags_filter { local tag="${1}" @@ -367,18 +369,37 @@ function run_integration_internal { ( cd tests/integration && ./go.test ) } -function set_version { - # TODO: always generate & set version in addition to the tag - if [[ ! ${SET_VIRTLET_IMAGE_TAG:-} ]]; then - return +function get_ldflags { + # XXX: use kube::version::ldflag (-ldflags -X package.Var=...) + # see also versioning.mk in helm + # https://stackoverflow.com/questions/11354518/golang-application-auto-build-versioning + # see pkg/version/version.go in k8s + # for GoVersion / Compiler / Platform + local vfile="${project_dir}/pkg/version/version.go" + local git_version="$(git describe --tags --abbrev=14 'HEAD^{commit}' | sed "s/-g\([0-9a-f]\{14\}\)$/+\1/")" + local git_commit="$(git rev-parse "HEAD^{commit}")" + local git_tree_state=$([[ $(git status --porcelain) ]] && echo "dirty" || echo "clean") + if [[ ${git_tree_state} == dirty ]]; then + git_version+="-dirty" fi - cat >"${project_dir}/pkg/version/version.go" <