diff options
Diffstat (limited to '.gitea/workflows/release.yaml')
-rw-r--r-- | .gitea/workflows/release.yaml | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8ec7333..ac67bf4 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -39,9 +39,18 @@ jobs: - name: Get Meta id: meta run: | + set -e + + # Obtain the latest tag without considering commit information LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null) - COMMIT_HASH=$(git rev-parse --short HEAD) - TAG_AT_HEAD=$(git describe --tags --exact-match 2>/dev/null) + + # Obtain the short hash of the current commit + COMMIT_HASH=$(git rev-parse --short HEAD 2>/dev/null) + + # Check if the current commit is tagged exactly + TAG_AT_HEAD=$(git describe --tags --exact-match 2>/dev/null || true) + + # If the commit has a tag, use it as the final version, stripping the 'v' prefix if present if [ -n "$TAG_AT_HEAD" ]; then FINAL_VERSION=${TAG_AT_HEAD#v} else @@ -51,6 +60,16 @@ jobs: FINAL_VERSION="${LATEST_TAG#v}-g${COMMIT_HASH}" fi fi + + # Error handling: Ensure that FINAL_VERSION is not empty + if [ -z "$FINAL_VERSION" ]; then + echo "Error: Unable to determine version." >&2 + exit 1 + fi + + # Output the final version + echo "Final Version: $FINAL_VERSION" + echo "IMAGE_VERSION=${FINAL_VERSION}" >> $GITHUB_OUTPUT - name: Build Docker image |