3939 CURRENT_VERSION=$(cat VERSION 2>/dev/null || echo "0.0.0")
4040 echo "Current version: $CURRENT_VERSION"
4141
42+ # Letzten Git-Tag abrufen
43+ LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
44+ LAST_TAG_VERSION=${LAST_TAG#v}
45+ echo "Last tag version: $LAST_TAG_VERSION"
46+
47+ # Höchste Version verwenden
48+ if [[ "$LAST_TAG_VERSION" > "$CURRENT_VERSION" ]]; then
49+ CURRENT_VERSION="$LAST_TAG_VERSION"
50+ echo "Using tag version as base: $CURRENT_VERSION"
51+ fi
52+
4253 # Release-Typ bestimmen basierend auf Commit-Message
4354 SHOULD_RELEASE="false"
4455 RELEASE_TYPE=""
7485 NEW_VERSION=$(echo $CURRENT_VERSION | awk -F. '{print $1"."$2+1".0"}')
7586 fi
7687
88+ # Überprüfen ob der berechnete Tag bereits existiert
89+ if [[ "$SHOULD_RELEASE" == "true" ]] && git rev-parse "v$NEW_VERSION" >/dev/null 2>&1; then
90+ echo "Tag v$NEW_VERSION already exists, skipping release"
91+ SHOULD_RELEASE="false"
92+ fi
93+
7794 echo "should_release=$SHOULD_RELEASE" >> $GITHUB_OUTPUT
7895 echo "release_type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
7996 echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
@@ -145,9 +162,6 @@ jobs:
145162 # Via pip
146163 pip install bash-script-maker==$NEW_VERSION
147164
148- # Via Flatpak
149- flatpak install BashScriptMaker-$NEW_VERSION.flatpak
150-
151165 # Aus Quellcode
152166 git clone https://github.com/securebitsorg/bash-script-maker.git
153167 cd bash-script-maker
@@ -174,6 +188,13 @@ jobs:
174188 - name : Create and push tag
175189 run : |
176190 NEW_VERSION="${{ needs.check-for-release.outputs.version }}"
191+
192+ # Überprüfen ob Tag bereits existiert
193+ if git rev-parse "v$NEW_VERSION" >/dev/null 2>&1; then
194+ echo "Tag v$NEW_VERSION already exists, skipping tag creation"
195+ exit 0
196+ fi
197+
177198 git tag -a "v$NEW_VERSION" -m "Automatic release v$NEW_VERSION"
178199 git push origin main
179200 git push origin "v$NEW_VERSION"
0 commit comments