From cb1068e6e62a6fbf5111d9dc042b2a4ad8ec2695 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20=C5=98ezn=C3=AD=C4=8Dek?=
 <246254@mail.muni.cz>
Date: Mon, 29 Apr 2024 10:33:18 +0200
Subject: [PATCH] feat: push also general containers versions/tags

---
 .gitlab-ci.yml         |  3 ++-
 ci/general-versions.sh | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100755 ci/general-versions.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7dd5875..b5bb804 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,6 +11,7 @@ before_script:
 - ci/toolset-container/install-pkgs.sh ci/requirements-toolset-container-build.apt
 - ${DOCKER_EXE} login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "${CI_REGISTRY}"
 - export VERSION=$(ci/version.sh CHANGELOG.md)
+- export GENERAL_VERSIONS="$(ci/general-versions.sh ${VERSION} latest)"
 - cd ci/toolset-container
 
 # build and release container image
@@ -34,7 +35,7 @@ release-image:
   script: |
     CONTAINER_IMAGE="$(head -1 container-release.uri)"
     ${DOCKER_EXE} pull "${CONTAINER_IMAGE}"
-    for i_container_image_tag in ${VERSION} latest; do
+    for i_container_image_tag in ${VERSION} ${GENERAL_VERSIONS}; do
       ${DOCKER_EXE} tag "${CONTAINER_IMAGE}" ${CI_REGISTRY_IMAGE}:${i_container_image_tag}
       ${DOCKER_EXE} push "${CI_REGISTRY_IMAGE}:${i_container_image_tag}"
       echo "${CI_REGISTRY_IMAGE}:${i_container_image_tag}" >> container-release.uri
diff --git a/ci/general-versions.sh b/ci/general-versions.sh
new file mode 100755
index 0000000..fce548e
--- /dev/null
+++ b/ci/general-versions.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+# Get general project versions
+# Usage: general-versions.sh <specific-version> [additional-general-version]
+#
+# Example usage:
+# * general-versions.sh 1.2.0 latest
+# 1
+# 1.2
+# latest
+
+SPECIFIC_VERSION="$1"
+
+[ -n "${SPECIFIC_VERSION}" ] || \
+  exit 2
+
+shift
+
+# major version
+echo "${SPECIFIC_VERSION}" | grep -Eo '^[0-9]+'
+# major + major.minor versions
+echo "${SPECIFIC_VERSION}" | grep -Eo '^[0-9]+.[0-9]+'
+
+for i_arg in "$@"; do
+    echo "$i_arg"
+done
-- 
GitLab