Skip to content

Commit 714d764

Browse files
committed
Update release workflows to handle CHANGELOG updates more fully
1 parent ff48434 commit 714d764

File tree

1 file changed

+53
-10
lines changed

1 file changed

+53
-10
lines changed

.github/workflows/release.yml

Lines changed: 53 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)