ci: fix release-notes for tag builds
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

This commit is contained in:
Stefan Goppelt 2026-03-29 18:03:42 +02:00
parent 0ee28fbc1f
commit a665b7264c
2 changed files with 10 additions and 3 deletions

View File

@ -27,6 +27,7 @@ steps:
- name: release-notes - name: release-notes
image: golang:1.25.8 image: golang:1.25.8
commands: commands:
- git fetch --tags --force || true
- bash scripts/generate-release-notes.sh - bash scripts/generate-release-notes.sh
when: when:
event: event:

View File

@ -11,7 +11,13 @@ if [ -z "$CURRENT_TAG" ]; then
exit 1 exit 1
fi fi
PREVIOUS_TAG=$(git describe --tags --abbrev=0 "$CURRENT_TAG"^ 2>/dev/null || echo "") # In CI, the tag name may be available but not present as a local ref.
CURRENT_REF="$CURRENT_TAG"
if ! git rev-parse --verify -q "${CURRENT_REF}^{commit}" >/dev/null; then
CURRENT_REF="${DRONE_COMMIT:-HEAD}"
fi
PREVIOUS_TAG=$(git describe --tags --abbrev=0 "${CURRENT_REF}^" 2>/dev/null || echo "")
mkdir -p "$(dirname "$OUTPUT_FILE")" mkdir -p "$(dirname "$OUTPUT_FILE")"
@ -23,7 +29,7 @@ mkdir -p "$(dirname "$OUTPUT_FILE")"
echo "Changes since $PREVIOUS_TAG:" echo "Changes since $PREVIOUS_TAG:"
echo echo
git log "$PREVIOUS_TAG..$CURRENT_TAG" --pretty=format:"%s" | while read -r commit; do git log "$PREVIOUS_TAG..$CURRENT_REF" --pretty=format:"%s" | while read -r commit; do
if [[ $commit =~ ^([a-z]+)(\(.+\))?:\ (.+)$ ]]; then if [[ $commit =~ ^([a-z]+)(\(.+\))?:\ (.+)$ ]]; then
TYPE="${BASH_REMATCH[1]}" TYPE="${BASH_REMATCH[1]}"
SCOPE="${BASH_REMATCH[2]}" SCOPE="${BASH_REMATCH[2]}"
@ -54,7 +60,7 @@ mkdir -p "$(dirname "$OUTPUT_FILE")"
else else
echo "Initial release" echo "Initial release"
echo echo
git log "$CURRENT_TAG" --pretty=format:"- %s" | head -20 git log "$CURRENT_REF" --pretty=format:"- %s" | head -20
fi fi
echo echo