name: Release a New Version description: Creates a PR to increment the version. When the PR is merged, it will automatically create a release. on: workflow_dispatch: inputs: version_type: description: Version increment type required: true default: patch type: choice options: [patch, minor, major, prepatch, preminor, premajor, prerelease] pre_release: description: Pre-release ID (suffix) required: false default: "" type: string jobs: bump-version: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: lts/* cache: "npm" - name: Bump version id: bump-version run: | npm version ${{ github.event.inputs.version_type }} --no-git-tag-version NEW_VERSION=$(node -p "require('./package.json').version") echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT - name: Format PR string id: capitalised run: | CAPITALISED_TYPE=${{ github.event.inputs.version_type }} echo "capitalised=${CAPITALISED_TYPE@u}" >> $GITHUB_OUTPUT - name: Create Pull Request uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e with: token: ${{ secrets.PR_GH_TOKEN }} commit-message: "[Release] Increment version to ${{ steps.bump-version.outputs.NEW_VERSION }}" title: ${{ steps.bump-version.outputs.NEW_VERSION }} body: | ${{ steps.capitalised.outputs.capitalised }} version increment to ${{ steps.bump-version.outputs.NEW_VERSION }} branch: version-bump-${{ steps.bump-version.outputs.NEW_VERSION }} base: master labels: | Release