From df96224f87320ce0349f01e5150b7702c3a2e849 Mon Sep 17 00:00:00 2001 From: Jan Galek Date: Fri, 13 Dec 2024 10:26:51 +0100 Subject: [PATCH] [Updated] Fixed workflow --- .github/workflows/release.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8abf1d3..285eeae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,21 @@ jobs: # Získání aktuálního tagu CURRENT_TAG=$(git describe --tags --abbrev=0 HEAD) + # Funkce pro získání předchozího stabilního tagu + get_previous_stable_tag() { + PREV_TAG="" + # Procházej všechny tagy v obráceném pořadí (od nejnovějšího) + for tag in $(git tag --sort=-creatordate); do + # Pokud je tag stabilní (např. v1.0.0, v1.2.3, atd.), ale není stejný jako aktuální + if [[ "$tag" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] && [[ "$tag" != "$CURRENT_TAG" ]]; then + PREV_TAG=$tag + break + fi + done + echo $PREV_TAG + } + + # Pokud je aktuální tag beta nebo rc, najdi poslední stabilní verzi if [[ "$CURRENT_TAG" =~ -beta || "$CURRENT_TAG" =~ -rc ]]; then # Najdi poslední stabilní verzi (ignoruj beta/rc tagy) @@ -67,7 +82,7 @@ jobs: if [[ "$CURRENT_TAG" == "$PREV_TAG" ]]; then echo "Current tag is the same as the previous tag, using the previous stable tag." - PREV_TAG=$(git tag --sort=-creatordate | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | grep -B 1 "$CURRENT_TAG" | tail -n 1) + PREV_TAG=$(get_previous_stable_tag) fi if [ -z "$PREV_TAG" ]; then