@@ -59,12 +59,42 @@ jobs:
5959 - name : Package
6060 run : dotnet pack SharpConsoleUI/SharpConsoleUI.csproj --configuration Release --no-build --output ./nupkgs /p:Version=${{ steps.version.outputs.version }}
6161
62+ - name : Generate Release Notes
63+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
64+ id : release_notes
65+ run : |
66+ # Get previous tag
67+ PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
68+
69+ # Generate commit list
70+ if [ -n "$PREVIOUS_TAG" ]; then
71+ echo "### What's Changed" > release_notes.md
72+ echo "" >> release_notes.md
73+ git log ${PREVIOUS_TAG}..HEAD --pretty=format:"- %s (%h)" --no-merges >> release_notes.md
74+ else
75+ echo "### What's Changed" > release_notes.md
76+ echo "" >> release_notes.md
77+ echo "Initial release" >> release_notes.md
78+ fi
79+
80+ echo "" >> release_notes.md
81+ echo "" >> release_notes.md
82+ if [ -n "$PREVIOUS_TAG" ]; then
83+ echo "**Full Changelog**: https://github.com/${{ github.repository }}/compare/${PREVIOUS_TAG}...v${{ steps.version.outputs.version }}" >> release_notes.md
84+ fi
85+
86+ # Set output
87+ {
88+ echo 'notes<<EOF'
89+ cat release_notes.md
90+ echo EOF
91+ } >> $GITHUB_OUTPUT
92+
6293 - name : Create GitHub Release
6394 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
6495 uses : softprops/action-gh-release@v1
6596 with :
6697 files : ./nupkgs/*.nupkg
67- generate_release_notes : true
6898 body : |
6999 ## SharpConsoleUI ${{ steps.version.outputs.version }}
70100
75105 dotnet add package SharpConsoleUI --version ${{ steps.version.outputs.version }}
76106 ```
77107
78- ### What's Changed
108+ ${{ steps.release_notes.outputs.notes }}
79109 env :
80110 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
81111
0 commit comments