fix: use GitHub App token for release workflow (#130)

GITHUB_TOKEN can't trigger CI on PRs it creates, so the changesets
release PR could never pass required checks. Use a GitHub App token
instead, which triggers workflows normally.

Also pins all actions to commit SHAs and uses frozen lockfile.
This commit is contained in:
Matt Kane
2026-04-02 21:10:51 +01:00
committed by GitHub
parent ed5df8e453
commit b82a5fe7d6

View File

@@ -16,23 +16,31 @@ jobs:
id-token: write id-token: write
pull-requests: write pull-requests: write
steps: steps:
- name: Generate token
id: app-token
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
fetch-depth: 0 fetch-depth: 0
token: ${{ steps.app-token.outputs.token }}
- name: Setup pnpm - name: Setup pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with: with:
node-version: lts/* node-version: 22
cache: pnpm cache: pnpm
registry-url: https://registry.npmjs.org registry-url: https://registry.npmjs.org
- name: Install dependencies - name: Install dependencies
run: pnpm install run: pnpm install --frozen-lockfile
- name: Build packages - name: Build packages
run: pnpm build run: pnpm build
@@ -42,11 +50,11 @@ jobs:
- name: Create Release Pull Request or Publish - name: Create Release Pull Request or Publish
id: changesets id: changesets
uses: changesets/action@v1 uses: changesets/action@c8bada60c408975afd1a20b3db81d6eee6789308 # v1.4.9
with: with:
version: pnpm changeset version version: pnpm changeset version
publish: pnpm changeset publish publish: pnpm changeset publish
commit: "ci: release" commit: "ci: release"
title: "ci: release" title: "ci: release"
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}