2525 - name : Checkout code
2626 uses : actions/checkout@v4
2727 with :
28- fetch-depth : 0 # Essential for getting full history to capture all PRs
28+ fetch-depth : 0
2929
3030 - name : Get latest release version and calculate new version
3131 id : get_new_version
6161
6262 echo "New calculated version: v$new_version"
6363 echo "new_release_version=v$new_version" >> "$GITHUB_OUTPUT"
64- # For the changelog builder, ensure we pass '' if no previous tag, to get all history
6564 echo "latest_existing_tag=$latest_tag" >> "$GITHUB_OUTPUT"
6665
67- - name : Create Git Tag
68- id : create_git_tag
66+ - name : Create Git Tag (still useful to push tag before release)
6967 run : |
7068 git config user.name "GitHub Actions"
7169 git config user.email "[email protected] " @@ -74,39 +72,21 @@ jobs:
7472 env :
7573 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7674
77- - name : Generate Changelog
78- id : generate_changelog
79- uses : mikepenz/release-changelog-builder-action@v5
80- with :
81- fromTag : ${{ steps.get_new_version.outputs.latest_existing_tag == 'v0.0.0' && '' || steps.get_new_version.outputs.latest_existing_tag }}
82- toTag : ${{ steps.get_new_version.outputs.new_release_version }}
83- configurationJson : |
84- {
85- "template": "# Changes\n\n{{CHANGELOG}}",
86- "categories": [
87- {
88- "title": "",
89- "labels": ["*"]
90- "include": []
91- }
92- ],
93- "exclude_labels": ["skip-changelog", "duplicate"], # Labels to explicitly exclude from the changelog
94- "commit_mode": false # Ensure it processes PRs, not just commits
95- }
96- env :
97- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
98-
99- - name : Create GitHub Release
75+ - name : Create GitHub Release with Auto-Generated Notes (using gh CLI)
10076 id : create_release
101- uses : actions/create-release@v1
77+ run : |
78+ NEW_TAG="${{ steps.get_new_version.outputs.new_release_version }}"
79+ RELEASE_NAME="Release $NEW_TAG"
80+
81+ echo "Attempting to create release: $RELEASE_NAME"
82+
83+ gh release create "$NEW_TAG" \
84+ --title "$RELEASE_NAME" \
85+ --generate-notes \
86+ --draft=false \
87+ --prerelease=false
10288 env :
103- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
104- with :
105- tag_name : ${{ steps.get_new_version.outputs.new_release_version }}
106- release_name : Release ${{ steps.get_new_version.outputs.new_release_version }}
107- body : ${{ steps.generate_changelog.outputs.changelog }}
108- draft : false
109- prerelease : false
89+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} # Required for gh CLI to authenticate
11090
11191 cleanup_on_failure :
11292 runs-on : ubuntu-latest
0 commit comments