diff --git a/.gitea/workflows/do-release.yml b/.gitea/workflows/do-release.yml index 1ed46dd..091884d 100644 --- a/.gitea/workflows/do-release.yml +++ b/.gitea/workflows/do-release.yml @@ -41,13 +41,17 @@ jobs: run: | set -euo pipefail - # Fetch all tags from origin to ensure we have the latest + # Fetch all tags from origin first git fetch origin --tags --force --quiet 2>/dev/null || true - # Try to find the most recent tag (in case it was just created by prepare-release) - latest_tag="$(git describe --tags --abbrev=0 2>/dev/null || echo '')" + # Check if HEAD is at a tag (prepare-release may have just tagged it) + if head_tag="$(git describe --exact-match --tags HEAD 2>/dev/null)" && [[ -n "$head_tag" ]]; then + echo "detected_tag=$head_tag" >> "$GITHUB_OUTPUT" + exit 0 + fi - if [[ -n "$latest_tag" ]]; then + # Fall back to finding the most recent tag + if latest_tag="$(git describe --tags --abbrev=0 2>/dev/null)" && [[ -n "$latest_tag" ]]; then echo "detected_tag=$latest_tag" >> "$GITHUB_OUTPUT" fi