Skip to content

Prepare Release

Prepare Release #2

name: Prepare Release
on:
workflow_dispatch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
pull-requests: write
jobs:
prepare-release-pr:
name: Prepare PR for release
runs-on: ubuntu-latest
# Only run for the original repo, and only the default branch, and only if it's properly protected
if: |
(! github.event.push.head.repo.fork)
&& github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
&& github.ref_protected == true
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: main
- name: Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- uses: pnpm/action-setup@v2
with:
version: 8
- run: corepack enable
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Prepare release
run: pnpm run release:prep
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
- name: Create pull request
uses: peter-evans/create-pull-request@v5
id: cpr
with:
branch: prepare-release
committer: Steven Pautz (Github Actions) <[email protected]>
commit-message: Prepare release (automated)
title: Prepare release (automated)
delete-branch: true
token: ${{ secrets.PAT }}
- name: Check outputs
if: ${{ steps.cpr.outputs.pull-request-number }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"