Merge pull request #193 from nhosoi/tag_release

This commit is contained in:
Matt Willsher 2022-07-22 02:38:25 +01:00 committed by GitHub
commit 841a6ef9e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

58
.github/workflows/changelog_to_tag.yml vendored Normal file
View file

@ -0,0 +1,58 @@
# yamllint disable rule:line-length
name: Pushing CHANGELOG.md triggers tagging
on: # yamllint disable-line rule:truthy
push:
branches:
- main
- master
paths:
- CHANGELOG.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
jobs:
tagging:
runs-on: ubuntu-latest
steps:
- name: checkout PR
uses: actions/checkout@v2
- name: Get tag and message from the latest CHANGELOG.md commit
id: tag
run: |
set -euxo pipefail
pat='\[v[0-9]*\.[0-9]*\.[0-9]*\] - [0-9\-]*'
print=false
cat CHANGELOG.md | while read -r line; do
if [[ "$line" =~ $pat ]] && [[ "$print" == false ]]; then
echo "$line"
print=true
elif [[ "$line" =~ $pat ]] && [[ "$print" == true ]]; then
break
elif [[ "$print" == true ]]; then
echo "$line"
fi
done > ./.tagmsg.txt
_tagname=$( grep -m 1 "[0-9]*\.[0-9]*\.[0-9]*" CHANGELOG.md | \
sed -e "s/^.*\[\([0-9]*\.[0-9]*\.[0-9]*\)\].*/\1/" )
git fetch --all --tags
for t in $( git tag -l ); do
if [[ $t == "$_tagname" ]]; then
echo INFO: tag $t already exists
exit 1
fi
done
echo ::set-output name=tagname::"$_tagname"
- name: Create tag
uses: mathieudutour/github-tag-action@v6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ steps.tag.outputs.tagname }}
tag_prefix: ''
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ steps.tag.outputs.tagname }}
release_name: Version ${{ steps.tag.outputs.tagname }}
body_path: ./.tagmsg.txt
draft: false
prerelease: false