Skip to content

Create release PR

Create release PR #2

name: Create release PR
on:
workflow_dispatch:
inputs:
version-bump:
description: 'Version bump'
required: true
default: 'patch'
type: choice
options:
- major
- minor
- patch
version:
description: 'Custom version'
required: false
type: string
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
strategy:
matrix:
node-version: [20]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- name: Create app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.THEOPLAYER_BOT_APP_ID }}
private-key: ${{ secrets.THEOPLAYER_BOT_PRIVATE_KEY }}
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Configure Git user
run: |
git config user.name 'theoplayer-bot[bot]'
git config user.email '873105+theoplayer-bot[bot]@users.noreply.github.com'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci --workspaces
- name: Bump version
shell: bash
run: |
npm version --no-git-tag-version ${{ inputs.version || inputs.version-bump }}
echo "npm_version=$(jq -r .version package.json)" >> "$GITHUB_ENV"
- name: Push to release branch
shell: bash
run: |
git commit -a -m $npm_version
git push origin "HEAD:release/$npm_version"
- name: Create pull request
shell: bash
run: |
gh pr create \
--base main \
--head "release/$npm_version" \
--title "Release $npm_version" \
--body "$(npm run --silent github:changelog)"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}