From 531565d55c23d9a00d17d2709e1a376b6820cbc6 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Mon, 31 May 2021 11:14:13 +0100 Subject: [PATCH] Automatically determine version from build info or git --- Dockerfile | 2 ++ snikket_web/__init__.py | 2 +- snikket_web/_version.py | 20 +++++++++++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index bcef289..38a3adf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,5 +37,7 @@ ENV SNIKKET_WEB_PROSODY_ENDPOINT=http://127.0.0.1:5280/ HEALTHCHECK CMD nc -zv ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_INTERFACE:-127.0.0.1} ${SNIKKET_TWEAK_PORTAL_INTERNAL_HTTP_PORT:-5765} +RUN echo "$BUILD_SERIES $BUILD_ID" > /opt/snikket-web-portal/.app_version + ADD docker/entrypoint.sh /entrypoint.sh ENTRYPOINT ["/bin/sh", "/entrypoint.sh"] diff --git a/snikket_web/__init__.py b/snikket_web/__init__.py index 78e5a8d..2f4e043 100644 --- a/snikket_web/__init__.py +++ b/snikket_web/__init__.py @@ -21,7 +21,7 @@ from quart import ( import environ from . import colour, infra -from ._version import version, version_info # noqa:F401 +from ._version import version # noqa:F401 async def proc() -> typing.Dict[str, typing.Any]: diff --git a/snikket_web/_version.py b/snikket_web/_version.py index 4f0438a..dbc88ce 100644 --- a/snikket_web/_version.py +++ b/snikket_web/_version.py @@ -1,5 +1,15 @@ -version_info = (0, 2, 1, None) -version = ( - ".".join(map(str, version_info[:3])) + - (f"-{version_info[3]}" if version_info[3] else "") -) +import os +import subprocess + +version = "(unknown)" + +if os.path.exists(".app_version"): + with open(".app_version") as f: + version = f.read().strip() +elif os.path.exists(".git"): + try: + version = subprocess.check_output([ + "git", "describe", "--always" + ]).strip().decode("utf8") + except OSError: + version = "dev (unknown)"