From 00b1013fa7d191ed3c545c3a713e6607baab841c Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Tue, 2 Jul 2024 00:22:43 +0200 Subject: [PATCH 1/5] infra(release): draft release --- .github/workflows/draft-release.yml | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/draft-release.yml diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml new file mode 100644 index 00000000000..9e976bd27ad --- /dev/null +++ b/.github/workflows/draft-release.yml @@ -0,0 +1,56 @@ +name: Draft Release + +on: + push: + branches: + - next + +permissions: + contents: write # to create releases + +jobs: + draft_release: + if: startsWith(github.event.head_commit.message, 'chore(release):') + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + fetch-depth: 0 # we need the tags and the commit history for the gh release create command + + - name: Extract release version + run: | + RELEASE_VERSION=$(echo "${{ github.event.head_commit.message }}" | sed 's/.*\: //') + echo "RELEASE_VERSION=$RELEASE_VERSION" + echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV + PREVIOUS_VERSION=$(git describe --tags --abbrev=0) + echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" + echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" >> $GITHUB_ENV + + - name: Release Args - Prerelease + if: contains(github.event.head_commit.message, '-') + run: | + RELEASE_ARGS="--prerelease" + echo "RELEASE_ARGS=$RELEASE_ARGS" + echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV + + - name: Release Args - Release + if: "!contains(github.event.head_commit.message, '-')" + run: | + RELEASE_ARGS="--latest" + echo "RELEASE_ARGS=$RELEASE_ARGS" + echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV + + - name: Create draft release + run: | + gh release create \ + v$RELEASE_VERSION \ + --draft \ + $RELEASE_ARGS \ + --generate-notes \ + --notes-start-tag $PREVIOUS_VERSION \ + --title v$RELEASE_VERSION + env: + GH_TOKEN: ${{ github.token }} From 0c5a78a1c7a25d81acea59081092c22dbbe50ed7 Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Tue, 2 Jul 2024 22:45:01 +0200 Subject: [PATCH 2/5] chore: read version from package.json --- .github/workflows/draft-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 9e976bd27ad..e0274906c07 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -22,7 +22,7 @@ jobs: - name: Extract release version run: | - RELEASE_VERSION=$(echo "${{ github.event.head_commit.message }}" | sed 's/.*\: //') + RELEASE_VERSION=$(jq -r '.version' package.json) echo "RELEASE_VERSION=$RELEASE_VERSION" echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV PREVIOUS_VERSION=$(git describe --tags --abbrev=0) From ee6b6eeda0b59274fe2080749c78708ab44831ac Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Tue, 2 Jul 2024 22:45:29 +0200 Subject: [PATCH 3/5] chore: remove debug logs --- .github/workflows/draft-release.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index e0274906c07..b80d693de85 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -23,24 +23,20 @@ jobs: - name: Extract release version run: | RELEASE_VERSION=$(jq -r '.version' package.json) - echo "RELEASE_VERSION=$RELEASE_VERSION" echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV PREVIOUS_VERSION=$(git describe --tags --abbrev=0) - echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" >> $GITHUB_ENV - name: Release Args - Prerelease if: contains(github.event.head_commit.message, '-') run: | RELEASE_ARGS="--prerelease" - echo "RELEASE_ARGS=$RELEASE_ARGS" echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV - name: Release Args - Release if: "!contains(github.event.head_commit.message, '-')" run: | RELEASE_ARGS="--latest" - echo "RELEASE_ARGS=$RELEASE_ARGS" echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV - name: Create draft release From cea488d4896d5d4f86a07803eb81a837ebc93efa Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Tue, 2 Jul 2024 23:01:22 +0200 Subject: [PATCH 4/5] chore: various improvements --- .github/workflows/draft-release.yml | 31 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index b80d693de85..f52dff4cee0 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -1,16 +1,20 @@ name: Draft Release on: - push: - branches: - - next + pull_request_target: + types: + - closed + paths: + - 'CHANGELOG.md' permissions: contents: write # to create releases jobs: draft_release: - if: startsWith(github.event.head_commit.message, 'chore(release):') + if: > + startsWith(github.event.pull_request.title, 'chore(release):') + && github.event.pull_request.merged runs-on: ubuntu-latest timeout-minutes: 10 @@ -19,24 +23,19 @@ jobs: uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 # we need the tags and the commit history for the gh release create command + ref: ${{ github.event.pull_request.base.ref }} - - name: Extract release version + - name: Gather release information run: | RELEASE_VERSION=$(jq -r '.version' package.json) echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV PREVIOUS_VERSION=$(git describe --tags --abbrev=0) echo "PREVIOUS_VERSION=$PREVIOUS_VERSION" >> $GITHUB_ENV - - - name: Release Args - Prerelease - if: contains(github.event.head_commit.message, '-') - run: | - RELEASE_ARGS="--prerelease" - echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV - - - name: Release Args - Release - if: "!contains(github.event.head_commit.message, '-')" - run: | - RELEASE_ARGS="--latest" + if [[ "$RELEASE_VERSION" == *"-"* ]]; then + RELEASE_ARGS="--prerelease" + else + RELEASE_ARGS="--latest" + fi echo "RELEASE_ARGS=$RELEASE_ARGS" >> $GITHUB_ENV - name: Create draft release From 074c13fd42bbe3d4f91950c082863b1185f1156c Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Wed, 3 Jul 2024 00:59:36 +0200 Subject: [PATCH 5/5] chore: add name --- .github/workflows/draft-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index f52dff4cee0..73632e1b115 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -12,6 +12,7 @@ permissions: jobs: draft_release: + name: Draft Release if: > startsWith(github.event.pull_request.title, 'chore(release):') && github.event.pull_request.merged