Skip to content

cache

cache #23

Workflow file for this run

name: change
on:
push:
branches:
- '*'
jobs:
changelog:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate
run: |
tags=$(git tag --merged $(git rev-parse HEAD) --sort=-creatordate)
if [ -f CHANGELOG.md ]; then
previous=$(grep -oP '^## \K.*' CHANGELOG.md | head -n 1)
fi
for tag in $tags; do
if [ "$tag" == "$previous" ]; then
break
fi
echo "## $tag" >> NEW_CHANGELOG.md
echo "" >> NEW_CHANGELOG.md
git log --pretty=format:"%B" "$tag..$previous" | awk 'NF {print "- " $0} !NF {print ""}' >> NEW_CHANGELOG.md
echo "" >> NEW_CHANGELOG.md
if [ -z "$previous" ]; then
break;
fi
previous=$tag
done
if [ -f CHANGELOG.md ]; then
cat CHANGELOG.md >> NEW_CHANGELOG.md
fi
mv NEW_CHANGELOG.md CHANGELOG.md
- name: Commit
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add CHANGELOG.md
if ! git diff --cached --quiet; then
git commit -m "Update Changelog"
git push
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}