Release a New Version #94
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} --preid ${{ github.event.inputs.pre_release }} --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 |