From a3b9b6ec2344c559bbb7d00f7613500055b19c4a Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Sun, 30 Jun 2024 23:02:15 +0200 Subject: [PATCH] infra(release): prepare PR --- .github/workflows/prepare-release-pr.yml | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/prepare-release-pr.yml diff --git a/.github/workflows/prepare-release-pr.yml b/.github/workflows/prepare-release-pr.yml new file mode 100644 index 00000000000..4deb7f69d7c --- /dev/null +++ b/.github/workflows/prepare-release-pr.yml @@ -0,0 +1,75 @@ +name: Prepare Release PR + +on: + workflow_dispatch: + inputs: + releaseType: + description: 'The type of release to prepare.' + required: true + type: choice + default: 'stable' + options: + - stable + - alpha + - beta + - rc + +permissions: + contents: write + pull-requests: write + +jobs: + prepare_release: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + + - name: Install pnpm + uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + + - name: Set node version to 22 + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + with: + node-version: 22 + cache: 'pnpm' + + - name: Install deps + run: pnpm install + env: + CYPRESS_INSTALL_BINARY: 0 + + - name: Run release + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + if [ $RELEASE_TYPE = 'stable' ]; then + pnpm run release + else + pnpm run release --prerelease $RELEASE_TYPE + fi + RELEASE_VERSION=$(jq -r '.version' package.json) + echo "RELEASE_VERSION=$RELEASE_VERSION" + echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV + env: + RELEASE_TYPE: ${{ github.event.inputs.releaseType }} + + - name: Switch to release branch + run: | + RELEASE_BRANCH="chore/release/$RELEASE_VERSION" + echo "RELEASE_BRANCH=$RELEASE_BRANCH" + echo "RELEASE_BRANCH=$RELEASE_BRANCH" >> $GITHUB_ENV + git switch -c $RELEASE_BRANCH + + - name: Create draft PR + run: | + gh pr create \ + --title "chore(release): $RELEASE_VERSION" + --body "Release for $RELEASE_VERSION\n\n- [ ] Completed manual release tasks\n- [ ] Link release checklist issue\n\n---\n\n- Checklist: TODO" \ + --draft + --base $GITHUB_REF_NAME + --head $RELEASE_BRANCH + env: + GH_TOKEN: ${{ github.token }}