summaryrefslogtreecommitdiff
path: root/hack/get_release_info.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hack/get_release_info.sh')
-rwxr-xr-xhack/get_release_info.sh18
1 files changed, 17 insertions, 1 deletions
diff --git a/hack/get_release_info.sh b/hack/get_release_info.sh
index 69cf8cd57..b3e208ac9 100755
--- a/hack/get_release_info.sh
+++ b/hack/get_release_info.sh
@@ -14,11 +14,27 @@ valid_args() {
cut -d '*' -f 1
}
+# `git describe` will never produce a useful version number under all
+# branches. This is because the podman release process (see `RELEASE_PROCESS.md`)
+# tags release versions only on release-branches (i.e. never on master).
+# Scraping the version number directly from the source, is the only way
+# to reliably obtain the number from all the various contexts supported by
+# the `Makefile`.
+scrape_version() {
+ local v
+ # extract the value of 'var Version'
+ v=$(sed -ne 's/^var\s\+Version\s\+=\s.*("\(.*\)").*/\1/p' <version/version.go)
+ # If it's empty, something has changed in version.go, that would be bad!
+ test -n "$v"
+ # Value consumed literally, must not have any embedded newlines
+ echo -n "$v"
+}
+
unset OUTPUT
case "$1" in
# Wild-card suffix needed by valid_args() e.g. possible bad grep of "$(echo $FOO)"
VERSION*)
- OUTPUT="${CIRRUS_TAG:-$(git fetch --tags && git describe HEAD 2> /dev/null)}"
+ OUTPUT="${CIRRUS_TAG:-$(scrape_version)}"
;;
NUMBER*)
OUTPUT="$($0 VERSION | sed 's/-.*//')"