From ce4c84ec01b788885a27b2e080df4017aee1f481 Mon Sep 17 00:00:00 2001 From: Youenn Piolet Date: Fri, 21 Jun 2024 14:52:51 +0200 Subject: [PATCH] ci(release): add prerelease workflow --- .github/workflows/release-pre.yml | 45 ++++++++++++ .github/workflows/release.yml | 111 +++++++++++++++--------------- 2 files changed, 102 insertions(+), 54 deletions(-) create mode 100644 .github/workflows/release-pre.yml diff --git a/.github/workflows/release-pre.yml b/.github/workflows/release-pre.yml new file mode 100644 index 0000000..2988180 --- /dev/null +++ b/.github/workflows/release-pre.yml @@ -0,0 +1,45 @@ +--- +name: Release +on: + pull_request: + branches: + - master + +jobs: + prerelease: + name: Release (prerelease) + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout sources + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + fetch-depth: 0 + + - name: Get Next Version + id: semver + uses: ietf-tools/semver-action@v1 + if: ${{ !env.ACT }} + with: + token: ${{ github.token }} + branch: master + + - name: Build artifacts + run: make version=${{ steps.semver.outputs.next }} artifact + + - name: Create Draft Release + uses: ncipollo/release-action@v1 + if: ${{ !env.ACT }} + with: + artifacts: "rf-liquidsoap*.tar.gz" + body: ${{ steps.changelog.outputs.changes }} + commit: ${{ github.sha }} + draft: true + generateReleaseNotes: true + makeLatest: false + name: ${{ steps.semver.outputs.next }} + prerelease: true + tag: ${{ steps.semver.outputs.next }} + token: ${{ github.token }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dbddaf9..249680c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,70 +1,73 @@ --- name: Release -on: # yamllint disable-line rule:truthy +on: workflow_dispatch: + branches: + - master jobs: - build-and-release: - name: Build & Release + release: + name: Release runs-on: ubuntu-latest permissions: contents: read packages: write steps: - - name: Checkout sources - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - with: - fetch-depth: 0 + - name: Checkout sources + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + fetch-depth: 0 - - name: Get Next Version - id: semver - uses: ietf-tools/semver-action@v1 - if: ${{ !env.ACT }} - with: - token: ${{ github.token }} - branch: master + - name: Get Next Version + id: semver + uses: ietf-tools/semver-action@v1 + if: ${{ !env.ACT }} + with: + token: ${{ github.token }} + branch: master - - name: Build artifacts - run: make version=${{ steps.semver.outputs.next }} artifact + - name: Build artifacts + run: make version=${{ steps.semver.outputs.next }} artifact - - name: Create Draft Release - uses: ncipollo/release-action@v1.12.0 - if: ${{ !env.ACT }} - with: - artifacts: "rf-liquidsoap*.tar.gz" - prerelease: true - draft: false - commit: ${{ github.sha }} - tag: ${{ steps.semver.outputs.next }} - name: ${{ steps.semver.outputs.next }} - body: '*pending*' - token: ${{ github.token }} + - name: Create Draft Release + uses: ncipollo/release-action@v1 + if: ${{ !env.ACT }} + with: + artifacts: "rf-liquidsoap*.tar.gz" + prerelease: true + draft: false + commit: ${{ github.sha }} + tag: ${{ steps.semver.outputs.next }} + name: ${{ steps.semver.outputs.next }} + body: '*pending*' + token: ${{ github.token }} - - name: Update CHANGELOG - id: changelog - if: ${{ !env.ACT }} - uses: requarks/changelog-action@v1 - with: - token: ${{ github.token }} - tag: ${{ github.ref_name }} + - name: Update CHANGELOG + id: changelog + if: ${{ !env.ACT }} + uses: requarks/changelog-action@v1 + with: + token: ${{ github.token }} + tag: ${{ github.ref_name }} - - name: Create Release - if: ${{ !env.ACT }} - uses: ncipollo/release-action@v1 - with: - artifacts: "rf-liquidsoap*.tar.gz" - allowUpdates: true - draft: false - makeLatest: true - tag: ${{ steps.semver.outputs.next }} - name: ${{ steps.semver.outputs.next }} - body: ${{ steps.changelog.outputs.changes }} - token: ${{ github.token }} + - name: Create Release + if: ${{ !env.ACT }} + uses: ncipollo/release-action@v1 + with: + artifacts: "rf-liquidsoap*.tar.gz" + allowUpdates: true + draft: false + makeLatest: true + generateReleaseNotes: true + tag: ${{ steps.semver.outputs.next }} + name: ${{ steps.semver.outputs.next }} + body: ${{ steps.changelog.outputs.changes }} + token: ${{ github.token }} - - name: Commit CHANGELOG.md - if: ${{ !env.ACT }} - uses: stefanzweifel/git-auto-commit-action@v4 - with: - branch: main - commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]' - file_pattern: CHANGELOG.md + - name: Commit CHANGELOG.md + if: ${{ !env.ACT }} + uses: stefanzweifel/git-auto-commit-action@v4 + with: + branch: main + commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]' + file_pattern: CHANGELOG.md