From 4fa75122d00b351a96e9278ac1daf2a957e12238 Mon Sep 17 00:00:00 2001 From: DarthSim Date: Mon, 4 Apr 2022 15:02:52 +0600 Subject: [PATCH] Release with GH actions --- .github/workflows/release.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..eb7ad933 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Prepare notes + run: | + # Extract changelog entries between this and previous version headers + escaped_version=$(echo ${GITHUB_REF_NAME#v} | sed -e 's/[]\/$*.^[]/\\&/g') + awk "BEGIN{inrelease=0} /## \[${escaped_version}\]/{inrelease=1;next} /## \[[0-9]+\.[0-9]+\.[0-9]+.*\]/{inrelease=0;exit} {if (inrelease) print}" CHANGELOG.md \ + > RELEASE_NOTES.txt + + # Write PRERELEASE="true" env if tag name has any suffix after vMAJOR.MINOR.PATCH + if [[ ${GITHUB_REF_NAME} =~ ^v[0-9]+\.[0-9]+\.[0-9]+.+ ]]; then + echo 'PRERELEASE="true"' >> $GITHUB_ENV + else + echo 'PRERELEASE="false"' >> $GITHUB_ENV + fi + - name: Release + uses: softprops/action-gh-release@v1 + with: + body_path: RELEASE_NOTES.txt + prerelease: ${{ fromJSON(env.PRERELEASE) }}