diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..2755192a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,30 @@ +name: Release +on: + push: + tags: + - "*" +jobs: + github: + name: GitHub + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + - name: Extract release note + run: | + ruby \ + -e 'print("## REXML "); \ + puts(ARGF.read.split(/^## /)[1]. \ + gsub(/ {.+?}/, ""). \ + gsub(/\[(.+?)\]\[.+?\]/) {$1})' \ + NEWS.md > release-note.md + - name: Upload to release + run: | + title=$(head -n1 release-note.md | sed -e 's/^## //') + tail -n +2 release-note.md > release-note-without-version.md + gh release create ${GITHUB_REF_NAME} \ + --discussion-category Announcements \ + --notes-file release-note-without-version.md \ + --title "${title}" + env: + GH_TOKEN: ${{ github.token }}