From ec471ba27efd93be0272c2be16dd3de841110f1e Mon Sep 17 00:00:00 2001 From: Thane Thomson Date: Thu, 10 Nov 2022 08:15:53 -0500 Subject: [PATCH] ci: Sync release workflows with main (#9687) Signed-off-by: Thane Thomson Signed-off-by: Thane Thomson --- .github/workflows/pre-release.yml | 65 +++++++++++++++++++++++++++++++ .github/workflows/release.yml | 41 +++++++++++++++++-- 2 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/pre-release.yml diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 00000000000..8101a6d34d5 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,65 @@ +name: "Pre-release" + +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+" # e.g. v0.37.0-alpha.1, v0.38.0-alpha.10 + - "v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+" # e.g. v0.37.0-beta.1, v0.38.0-beta.10 + - "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" # e.g. v0.37.0-rc1, v0.38.0-rc10 + +jobs: + prerelease: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - uses: actions/setup-go@v3 + with: + go-version: '1.18' + + - name: Build + uses: goreleaser/goreleaser-action@v3 + if: ${{ github.event_name == 'pull_request' }} + with: + version: latest + args: build --skip-validate # skip validate skips initial sanity checks in order to be able to fully run + + # Link to CHANGELOG_PENDING.md as release notes. + - run: echo https://github.com/tendermint/tendermint/blob/${GITHUB_REF#refs/tags/}/CHANGELOG_PENDING.md > ../release_notes.md + + - name: Release + uses: goreleaser/goreleaser-action@v3 + if: startsWith(github.ref, 'refs/tags/') + with: + version: latest + args: release --rm-dist --release-notes=../release_notes.md + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + prerelease-success: + needs: prerelease + if: ${{ success() }} + runs-on: ubuntu-latest + steps: + - name: Notify Slack upon pre-release + uses: slackapi/slack-github-action@v1.23.0 + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + RELEASE_URL: "${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ github.ref_name }}" + with: + payload: | + { + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": ":sparkles: New Tendermint pre-release: <${{ env.RELEASE_URL }}|${{ github.ref_name }}>" + } + } + ] + } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07a9108e68e..7515d19dc02 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,10 +3,10 @@ name: "Release" on: push: tags: - - "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 + - "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 jobs: - goreleaser: + release: runs-on: ubuntu-latest steps: - name: Checkout @@ -18,12 +18,45 @@ jobs: with: go-version: '1.18' - - run: echo https://github.com/tendermint/tendermint/blob/${GITHUB_REF#refs/tags/}/CHANGELOG.md#${GITHUB_REF#refs/tags/} > ../release_notes.md + - name: Build + uses: goreleaser/goreleaser-action@v3 + if: ${{ github.event_name == 'pull_request' }} + with: + version: latest + args: build --skip-validate # skip validate skips initial sanity checks in order to be able to fully run - - name: Run GoReleaser + - run: echo https://github.com/tendermint/tendermint/blob/${GITHUB_REF#refs/tags/}/CHANGELOG.md#${GITHUB_REF#refs/tags/} > ../release_notes.md + + - name: Release uses: goreleaser/goreleaser-action@v3 + if: startsWith(github.ref, 'refs/tags/') with: version: latest args: release --rm-dist --release-notes=../release_notes.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + release-success: + needs: release + if: ${{ success() }} + runs-on: ubuntu-latest + steps: + - name: Notify Slack upon release + uses: slackapi/slack-github-action@v1.23.0 + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + RELEASE_URL: "${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ github.ref_name }}" + with: + payload: | + { + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": ":rocket: New Tendermint release: <${{ env.RELEASE_URL }}|${{ github.ref_name }}>" + } + } + ] + }