v0.0.44 #16
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Changelog | |
on: | |
release: | |
types: [released] | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
update-changelog: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run Go Changelog Generator | |
run: | | |
# Run the Go changelog generator, pass the release tag if available | |
if [ "${{ github.event.release.tag_name }}" = "latest" ]; then | |
go run tools/changelog.go > "${{ github.event.release.tag_name }}-changelog.md" | |
else | |
go run tools/changelog.go "${{ github.event.release.tag_name }}" > "${{ github.event.release.tag_name }}-changelog.md" | |
fi | |
- name: Handle changelog files | |
run: | | |
# Remove the 'v' prefix from the tag name and extract Major.Minor version | |
TAG_NAME=${{ github.event.release.tag_name }} | |
CHANGELOG_VERSION_NUMBER=$(echo "$TAG_NAME" | sed 's/^v//' | grep -oP '^\d+\.\d+') | |
# Define the new changelog file path | |
CHANGELOG_FILENAME="CHANGELOG-$CHANGELOG_VERSION_NUMBER.md" | |
CHANGELOG_PATH="CHANGELOG/$CHANGELOG_FILENAME" | |
# Check if the changelog file for the current release already exists | |
if [ -f "$CHANGELOG_PATH" ]; then | |
# If the file exists, append the current content to the temporary changelog | |
cat "$CHANGELOG_PATH" >> "${TAG_NAME}-changelog.md" | |
# Overwrite the existing changelog with the updated content | |
mv "${TAG_NAME}-changelog.md" "$CHANGELOG_PATH" | |
else | |
# If it doesn't exist, rename the temp changelog to the new changelog file | |
mv "${TAG_NAME}-changelog.md" "$CHANGELOG_PATH" | |
# Update CHANGELOG/README.md with the new file in reverse order | |
if [ ! -f "CHANGELOG/README.md" ]; then | |
echo "# CHANGELOGs" > CHANGELOG/README.md | |
fi | |
# Insert the new changelog at the top of the README.md file | |
sed -i "2i- [$CHANGELOG_FILENAME](./$CHANGELOG_FILENAME)" CHANGELOG/README.md | |
fi | |
- name: Clean up | |
run: | | |
# Remove any temporary files that were created during the process | |
rm -f "${{ github.event.release.tag_name }}-changelog.md" | |
- name: Create Pull Request | |
uses: peter-evans/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
commit-message: "Update CHANGELOG for release ${{ github.event.release.tag_name }}" | |
title: "Update CHANGELOG for release ${{ github.event.release.tag_name }}" | |
body: "This PR updates the CHANGELOG files for release ${{ github.event.release.tag_name }}" | |
branch: changelog-${{ github.event.release.tag_name }} | |
base: main | |
delete-branch: true | |
labels: changelog |