feat: update release notes generation to use previous tag for changes

This commit is contained in:
Manuel Weiser 2025-02-22 20:13:15 +01:00
parent 6d8358cbb9
commit cd619b8f2a
2 changed files with 16 additions and 14 deletions

View File

@ -69,24 +69,25 @@ jobs:
- name: Generate Release Notes - name: Generate Release Notes
id: release_notes id: release_notes
run: | run: |
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") CURRENT_TAG=$(git describe --tags --abbrev=0)
PREVIOUS_TAG=$(git describe --tags --abbrev=0 ${CURRENT_TAG}^)
if [ -n "$LAST_TAG" ]; then if [ -n "$PREVIOUS_TAG" ]; then
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT echo "CHANGES<<EOF" >> $GITHUB_OUTPUT
echo "Changes since $LAST_TAG:" >> $GITHUB_OUTPUT echo "Changes since $PREVIOUS_TAG:" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
# Get commits since last tag and categorize them # Get commits between previous and current tag
echo "### Added" >> $GITHUB_OUTPUT echo "### Added" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -iE '^(feat|add|new)' | sed 's/^feat: /- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -iE '^(feat|add|new)' | sed 's/^feat: /- /' >> $GITHUB_OUTPUT || true
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
echo "### Fixed" >> $GITHUB_OUTPUT echo "### Fixed" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -iE '^fix' | sed 's/^fix: /- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -iE '^fix' | sed 's/^fix: /- /' >> $GITHUB_OUTPUT || true
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
echo "### Changed" >> $GITHUB_OUTPUT echo "### Changed" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -ivE '^(feat|fix|add|new)' | sed 's/^/- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -ivE '^(feat|fix|add|new)' | sed 's/^/- /' >> $GITHUB_OUTPUT || true
echo "EOF" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT
else else
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT echo "CHANGES<<EOF" >> $GITHUB_OUTPUT

View File

@ -76,24 +76,25 @@ jobs:
- name: Generate Release Notes - name: Generate Release Notes
id: release_notes id: release_notes
run: | run: |
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") CURRENT_TAG=$(git describe --tags --abbrev=0)
PREVIOUS_TAG=$(git describe --tags --abbrev=0 ${CURRENT_TAG}^)
if [ -n "$LAST_TAG" ]; then if [ -n "$PREVIOUS_TAG" ]; then
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT echo "CHANGES<<EOF" >> $GITHUB_OUTPUT
echo "Changes since $LAST_TAG:" >> $GITHUB_OUTPUT echo "Changes since $PREVIOUS_TAG:" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
# Get commits since last tag and categorize them # Get commits between previous and current tag
echo "### Added" >> $GITHUB_OUTPUT echo "### Added" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -iE '^(feat|add|new)' | sed 's/^feat: /- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -iE '^(feat|add|new)' | sed 's/^feat: /- /' >> $GITHUB_OUTPUT || true
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
echo "### Fixed" >> $GITHUB_OUTPUT echo "### Fixed" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -iE '^fix' | sed 's/^fix: /- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -iE '^fix' | sed 's/^fix: /- /' >> $GITHUB_OUTPUT || true
echo "" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT
echo "### Changed" >> $GITHUB_OUTPUT echo "### Changed" >> $GITHUB_OUTPUT
git log $LAST_TAG..HEAD --pretty=format:%s | grep -ivE '^(feat|fix|add|new)' | sed 's/^/- /' >> $GITHUB_OUTPUT || true git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:%s | grep -ivE '^(feat|fix|add|new)' | sed 's/^/- /' >> $GITHUB_OUTPUT || true
echo "EOF" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT
else else
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT echo "CHANGES<<EOF" >> $GITHUB_OUTPUT