Skip to content

Commit c16b394

Browse files
committed
no message
1 parent 73f314c commit c16b394

File tree

1 file changed

+34
-10
lines changed

1 file changed

+34
-10
lines changed

.github/workflows/release-management.yml

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ jobs:
7373
echo "has_changesets=true" >> $GITHUB_OUTPUT
7474
else
7575
echo "has_changesets=false" >> $GITHUB_OUTPUT
76-
echo "No changesets found. Exiting."
77-
exit 1
76+
echo "No changesets found. Proceeding with release without changesets."
7877
fi
7978
8079
- name: Determine version bump
@@ -84,8 +83,12 @@ jobs:
8483
# Use the specified release type
8584
npm run version:bump -- --type=${{ github.event.inputs.release_type }}
8685
else
87-
# Auto-detect release type from changesets
88-
npm run version:bump
86+
# Auto-detect release type from changesets, or default to patch if none found
87+
if [[ "${{ steps.check_changesets.outputs.has_changesets }}" == "true" ]]; then
88+
npm run version:bump
89+
else
90+
npm run version:bump -- --type=patch
91+
fi
8992
fi
9093
9194
# Get the new version after bump
@@ -155,10 +158,22 @@ jobs:
155158
156159
# Check if the file has content
157160
if [ ! -s /tmp/release-notes/release_notes.md ]; then
158-
# If empty, provide a default message
161+
# If empty, provide a more informative default message
159162
echo "## Release Notes" > /tmp/release-notes/release_notes.md
160163
echo "" >> /tmp/release-notes/release_notes.md
161-
echo "No changesets found. No changes to release at this time." >> /tmp/release-notes/release_notes.md
164+
165+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
166+
echo "This release was manually triggered with version bump type: ${{ github.event.inputs.release_type || 'auto' }}" >> /tmp/release-notes/release_notes.md
167+
elif [[ "${{ github.event_name }}" == "schedule" ]]; then
168+
echo "This is a scheduled release." >> /tmp/release-notes/release_notes.md
169+
else
170+
echo "This release was triggered by merging a PR from develop to main." >> /tmp/release-notes/release_notes.md
171+
fi
172+
173+
echo "" >> /tmp/release-notes/release_notes.md
174+
echo "No changesets were found for this release. This typically means:" >> /tmp/release-notes/release_notes.md
175+
echo "- No features, fixes, or breaking changes were added, or" >> /tmp/release-notes/release_notes.md
176+
echo "- The changes made did not require a changeset" >> /tmp/release-notes/release_notes.md
162177
else
163178
# If there is content, replace "Upcoming Changes" with "Release Notes" if present
164179
sed -i 's/## Upcoming Changes/## Release Notes/g' /tmp/release-notes/release_notes.md
@@ -246,6 +261,7 @@ jobs:
246261

247262
- name: Handle release creation failure
248263
if: (github.event_name == 'pull_request_target' || github.event_name == 'workflow_dispatch') && steps.create_release.outcome == 'failure'
264+
id: handle_failure
249265
run: |
250266
echo "Failed to create release. This could be because the tag already exists."
251267
echo "Checking if release exists..."
@@ -256,9 +272,11 @@ jobs:
256272
"https://api.github.com/repos/${{ github.repository }}/releases/tags/v${{ steps.version_bump.outputs.version }}")
257273
258274
if [[ "$RELEASE_EXISTS" == "200" ]]; then
259-
echo "Release for v${{ steps.version_bump.outputs.version }} already exists. Skipping release creation."
275+
echo "Release for v${{ steps.version_bump.outputs.version }} already exists. Marking as successful."
276+
echo "release_exists=true" >> $GITHUB_OUTPUT
260277
else
261278
echo "Release creation failed for an unknown reason."
279+
echo "release_exists=false" >> $GITHUB_OUTPUT
262280
263281
# Check for rate limiting
264282
RATE_LIMIT=$(curl -s \
@@ -299,6 +317,7 @@ jobs:
299317
--title "Release v${{ steps.version_bump.outputs.version }}" \
300318
--notes-file "${{ github.workspace }}/release_notes.md"; then
301319
echo "Successfully created release using GitHub CLI"
320+
echo "release_exists=true" >> $GITHUB_OUTPUT
302321
else
303322
echo "::error::Failed to create release using GitHub CLI with notes file."
304323
@@ -308,8 +327,10 @@ jobs:
308327
--title "Release v${{ steps.version_bump.outputs.version }}" \
309328
--notes "${{ steps.release_notes.outputs.content }}"; then
310329
echo "Successfully created release using GitHub CLI with inline notes"
330+
echo "release_exists=true" >> $GITHUB_OUTPUT
311331
else
312332
echo "::error::Failed to create release using all methods. Please check logs for details."
333+
echo "release_exists=false" >> $GITHUB_OUTPUT
313334
exit 1
314335
fi
315336
fi
@@ -320,8 +341,10 @@ jobs:
320341
--title "Release v${{ steps.version_bump.outputs.version }}" \
321342
--notes "${{ steps.release_notes.outputs.content }}"; then
322343
echo "Successfully created release using GitHub CLI with inline notes"
344+
echo "release_exists=true" >> $GITHUB_OUTPUT
323345
else
324346
echo "::error::Failed to create release using all methods. Please check logs for details."
347+
echo "release_exists=false" >> $GITHUB_OUTPUT
325348
exit 1
326349
fi
327350
fi
@@ -350,14 +373,15 @@ jobs:
350373
fi
351374
352375
- name: Delete processed changesets
353-
if: github.event_name == 'pull_request_target' || github.event_name == 'workflow_dispatch'
376+
# Only delete changesets if the release was successful or already exists
377+
if: (github.event_name == 'pull_request_target' || github.event_name == 'workflow_dispatch') && (steps.create_release.outcome == 'success' || steps.handle_failure.outputs.release_exists == 'true')
354378
run: |
355379
# Configure Git
356380
git config --global user.name "GitHub Actions"
357381
git config --global user.email "[email protected]"
358382
359383
# Check if the .changesets directory exists and contains files
360-
if [ -d ".changesets" ]; then
384+
if [ -d ".changesets" ] && [ "$(find .changesets -type f -name "*.md" | wc -l)" -gt 0 ]; then
361385
# List all changesets before deleting (for logging purposes)
362386
echo "Changesets found in directory:"
363387
ls -la .changesets/
@@ -385,7 +409,7 @@ jobs:
385409
exit 1
386410
fi
387411
else
388-
echo "No .changesets directory found"
412+
echo "No changeset files found to delete"
389413
fi
390414
391415
- name: Update develop branch

0 commit comments

Comments
 (0)