name: Prepare Release PR on: workflow_dispatch: inputs: releaseType: description: 'The type of release to prepare a PR for.' required: true type: choice default: 'stable' options: - stable - alpha - beta - rc permissions: {} # we use a personal access token to push the branch and create the PR jobs: prepare_release_pr: name: Prepare Release PR runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 token: ${{ secrets.GH_TOKEN }} - name: Install pnpm uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 - name: Set node version to 24 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 24.6.0 cache: 'pnpm' - name: Install deps run: pnpm install - name: Run release run: | git config user.name "FakerJS Bot" git config user.email "github-bot@fakerjs.dev" 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" >> $GITHUB_ENV env: RELEASE_TYPE: ${{ github.event.inputs.releaseType }} - name: Switch to and push release branch run: | RELEASE_BRANCH="chore/release/$RELEASE_VERSION" echo "RELEASE_BRANCH=$RELEASE_BRANCH" >> $GITHUB_ENV git switch -c $RELEASE_BRANCH git push origin $RELEASE_BRANCH -f - name: Create draft PR run: | gh pr create \ --base $GITHUB_REF_NAME \ --head $RELEASE_BRANCH \ --draft \ --title "chore(release): $RELEASE_VERSION" \ --body " Release for $RELEASE_VERSION - [ ] Completed manual changes/tasks for this release --- - Checklist: TODO add link to issue " env: GH_TOKEN: ${{ secrets.GH_TOKEN }}