@@ -150,7 +150,7 @@ jobs:
150150 chmod +x Scripts/update-artifact-bundle.sh
151151 ./Scripts/update-artifact-bundle.sh "$VERSION"
152152
153- - name : Commit updated Package.swift to release branch
153+ - name : Commit updated files to release branch
154154 run : |
155155 # Configure git for GitHub Actions bot
156156 git config user.name "github-actions[bot]"
@@ -175,16 +175,35 @@ jobs:
175175 # Get the checksum for the commit message
176176 CHECKSUM=$(cat swift-dependency-audit.artifactbundle.zip.checksum)
177177
178- # Add and commit the updated Package.swift
179- git add Package.swift
180- git commit -m "Release Package.swift for $VERSION
178+ # Build commit message
179+ COMMIT_MSG="Release $VERSION
181180
182181 - Production Package.swift with binary targets
183182 - Updated binary target URL for $VERSION
184- - Updated checksum: $CHECKSUM
183+ - Updated checksum: $CHECKSUM"
184+
185+ # Add CHANGELOG update to commit message if it was updated
186+ if [ "${{ env.CHANGELOG_UPDATED }}" = "true" ]; then
187+ COMMIT_MSG="${COMMIT_MSG}
188+ - Updated CHANGELOG.md with release notes"
189+ fi
190+
191+ COMMIT_MSG="${COMMIT_MSG}
185192
186193 🤖 Automated release commit"
187194
195+ # Add Package.swift
196+ git add Package.swift
197+
198+ # Add CHANGELOG.md if it was updated
199+ if [ "${{ env.CHANGELOG_UPDATED }}" = "true" ]; then
200+ git add CHANGELOG.md
201+ echo "✅ Including updated CHANGELOG.md in release commit"
202+ fi
203+
204+ # Commit the changes
205+ git commit -m "$COMMIT_MSG"
206+
188207 # Push the release branch
189208 git push origin "$RELEASE_BRANCH"
190209
@@ -240,7 +259,7 @@ jobs:
240259 fi
241260 cat checksums.txt
242261
243- - name : Generate release notes
262+ - name : Update CHANGELOG for release
244263 run : |
245264 # Get version from git tag or manual input
246265 if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
@@ -249,14 +268,38 @@ jobs:
249268 VERSION=${GITHUB_REF#refs/tags/}
250269 fi
251270
252- # Make script executable and generate release notes
271+ # Make script executable
253272 chmod +x Scripts/generate-release-notes.sh
254273
255- # Try to extract specific version, fallback to unreleased
274+ # Check if Unreleased section exists and has content
275+ if grep -q "^## \[Unreleased\]" CHANGELOG.md; then
276+ echo "📝 Found [Unreleased] section, updating CHANGELOG.md for $VERSION"
277+
278+ # Update CHANGELOG to convert Unreleased to versioned release
279+ if ./Scripts/generate-release-notes.sh "$VERSION" --update-changelog 2>&1; then
280+ echo "✅ Successfully updated CHANGELOG.md"
281+ echo "CHANGELOG_UPDATED=true" >> $GITHUB_ENV
282+ else
283+ echo "⚠️ Failed to update CHANGELOG.md, will use existing version"
284+ echo "CHANGELOG_UPDATED=false" >> $GITHUB_ENV
285+ fi
286+ else
287+ echo "ℹ️ No [Unreleased] section found, skipping CHANGELOG update"
288+ echo "CHANGELOG_UPDATED=false" >> $GITHUB_ENV
289+ fi
290+
291+ - name : Generate release notes
292+ run : |
293+ # Get version from git tag or manual input
294+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
295+ VERSION="${{ github.event.inputs.tag_name }}"
296+ else
297+ VERSION=${GITHUB_REF#refs/tags/}
298+ fi
299+
300+ # Try to extract specific version (should now exist after CHANGELOG update)
256301 if ./Scripts/generate-release-notes.sh "$VERSION" > release_notes.md 2>/dev/null; then
257302 echo "✅ Generated release notes from CHANGELOG.md for $VERSION"
258- elif ./Scripts/generate-release-notes.sh "unreleased" > release_notes.md 2>/dev/null; then
259- echo "⚠️ Specific version not found, using unreleased section"
260303 else
261304 echo "⚠️ Could not extract from CHANGELOG.md, using fallback"
262305 cat > release_notes.md << 'EOF'
0 commit comments