diff options
author | Nicolas Lacasse <nlacasse@google.com> | 2019-09-10 15:41:47 -0700 |
---|---|---|
committer | Nicolas Lacasse <nlacasse@google.com> | 2019-09-10 15:41:47 -0700 |
commit | c1a8275b470fe0d8390cba166d4937059fd89b8b (patch) | |
tree | e4d40834098c5209d815fd8f0f4ffb9c0cf9f206 | |
parent | 849c57314f6b6f0d1ebcfa2e68762b8ea95f5948 (diff) |
Fix `runsc --version` and add a test.
We need to include the `--stamp` flag in `tools/workspace_status.sh` for
the version to be picked up by the linker. Not sure why.
Also changes the VERSION string to STABLE_VERSION, which will cause the
program to be re-linked if the string changes.
Fixes #830
-rw-r--r-- | .bazelrc | 2 | ||||
-rw-r--r-- | runsc/BUILD | 11 | ||||
-rw-r--r-- | runsc/version.go | 2 | ||||
-rwxr-xr-x | runsc/version_test.sh | 30 | ||||
-rwxr-xr-x | tools/workspace_status.sh | 3 |
5 files changed, 43 insertions, 5 deletions
@@ -13,7 +13,7 @@ # limitations under the License. # Display the current git revision in the info block. -build --workspace_status_command tools/workspace_status.sh +build --stamp --workspace_status_command tools/workspace_status.sh # Enable remote execution so actions are performed on the remote systems. build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com diff --git a/runsc/BUILD b/runsc/BUILD index a2a465e1e..44a325b6f 100644 --- a/runsc/BUILD +++ b/runsc/BUILD @@ -13,7 +13,7 @@ go_binary( visibility = [ "//visibility:public", ], - x_defs = {"main.version": "{VERSION}"}, + x_defs = {"main.version": "{STABLE_VERSION}"}, deps = [ "//pkg/log", "//pkg/refs", @@ -46,7 +46,7 @@ go_binary( visibility = [ "//visibility:public", ], - x_defs = {"main.version": "{VERSION}"}, + x_defs = {"main.version": "{STABLE_VERSION}"}, deps = [ "//pkg/log", "//pkg/refs", @@ -101,3 +101,10 @@ pkg_deb( "//visibility:public", ], ) + +sh_test( + name = "version_test", + data = [":runsc"], + size = "small", + srcs = ["version_test.sh"], +) diff --git a/runsc/version.go b/runsc/version.go index ce0573a9b..ab9194b9d 100644 --- a/runsc/version.go +++ b/runsc/version.go @@ -15,4 +15,4 @@ package main // version is set during linking. -var version = "" +var version = "VERSION_MISSING" diff --git a/runsc/version_test.sh b/runsc/version_test.sh new file mode 100755 index 000000000..280815a46 --- /dev/null +++ b/runsc/version_test.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Copyright 2018 The gVisor 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 -euf -x -o pipefail + +readonly runsc="${TEST_SRCDIR}/__main__/runsc/linux_amd64_pure_stripped/runsc" +readonly version=$($runsc --version) + +# Version should should not match VERSION, which is the default and which will +# also appear if something is wrong with workspace_status.sh script. +if [[ $version =~ "VERSION" ]]; then + echo "Got bad version $version" + exit 1 +fi + +echo "Got OK version $version" +exit 0 diff --git a/tools/workspace_status.sh b/tools/workspace_status.sh index 64a905fc9..6d961625e 100755 --- a/tools/workspace_status.sh +++ b/tools/workspace_status.sh @@ -14,4 +14,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -echo VERSION $(git describe --always --tags --abbrev=12 --dirty) +# The STABLE_ prefix will triger a re-link if it changes. +echo STABLE_VERSION $(git describe --always --tags --abbrev=12 --dirty) |