From d8e2e7beebe2e2ab076b1e044288871aec4d7da4 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 24 Mar 2021 15:11:48 +1100 Subject: [PATCH] Add workflow for creating new releases Whenever a release branch - that is a branch starting with `release/` - is merged into master, we create a new GitHub release based on the version number in the branch name. Similarly to the preview release, we extract the relevant section of the changelog and make it the release body. --- ...ase-cli.yml => build-release-binaries.yml} | 6 +-- .github/workflows/create-release.yml | 41 +++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) rename .github/workflows/{release-cli.yml => build-release-binaries.yml} (97%) create mode 100644 .github/workflows/create-release.yml diff --git a/.github/workflows/release-cli.yml b/.github/workflows/build-release-binaries.yml similarity index 97% rename from .github/workflows/release-cli.yml rename to .github/workflows/build-release-binaries.yml index 6d59dcc2..4d9b3b50 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/build-release-binaries.yml @@ -1,12 +1,12 @@ -name: "Release swap and asb" +name: "Build swap and asb release binaries" on: release: types: [created] jobs: - release: - name: Release swap + build_binaries: + name: Build swap and asb binaries strategy: matrix: include: diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 00000000..f10e7f6b --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,41 @@ +name: "Create release" + +on: + pull_request: + types: + - closed + +jobs: + create_release: + name: Create from merged release branch + if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Extract version from branch name + id: extract-version + shell: python + run: | + branch_name = "${{ github.event.pull_request.head.ref }}" + version = branch_name.split("/")[1] + + print(f"::set-output name=version::{version}") + + - name: Extract changelog section for release + id: changelog + uses: coditory/changelog-parser@v1 + with: + version: ${{ steps.extract-version.outputs.version }} + + - name: Create release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.BOTTY_GITHUB_TOKEN }} + with: + tag_name: ${{ steps.extract-version.outputs.version }} + release_name: ${{ steps.extract-version.outputs.version }} + draft: false + prerelease: false + body: ${{ steps.changelog.outputs.description }} + commitish: ${{ github.event.pull_request.merge_commit_sha }}