44 lines
2.1 KiB
YAML
44 lines
2.1 KiB
YAML
# adapted from https://github.com/googleapis/release-please-action#automating-publication-to-npm
|
|
name: release-please
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
# `id-token` for publishing: https://docs.npmjs.com/trusted-publishers#github-actions-configuration
|
|
# the rest for release-please: https://github.com/googleapis/release-please-action#basic-configuration
|
|
permissions:
|
|
id-token: write # Required for OIDC
|
|
contents: write # Required by release-please to create a release
|
|
pull-requests: write # Required by release-please to open a release PR
|
|
issues: write # Required by release-please to comment on release-related issues
|
|
|
|
jobs:
|
|
release-please:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0
|
|
id: release
|
|
if: ${{ github.event_name == 'push' }}
|
|
with:
|
|
release-type: node
|
|
# The logic below handles the npm publication:
|
|
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
|
|
# these if statements ensure that a publication only occurs when
|
|
# a new release is created, or when manually triggered:
|
|
if: ${{ steps.release.outputs.release_created || github.event_name == 'workflow_dispatch' }}
|
|
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
|
with:
|
|
node-version: 24 # npm >= 11.5.1 (ships with Node 24) required for OIDC trusted publishing
|
|
cache: yarn
|
|
if: ${{ steps.release.outputs.release_created || github.event_name == 'workflow_dispatch' }}
|
|
# yarn install triggers the `prepare` lifecycle script which runs the full build
|
|
- run: yarn install --frozen-lockfile
|
|
if: ${{ steps.release.outputs.release_created || github.event_name == 'workflow_dispatch' }}
|
|
- run: npm publish --provenance --access public
|
|
env:
|
|
NODE_AUTH_TOKEN: '' # Clear the secret, if provided, so npm publishes via OIDC
|
|
if: ${{ steps.release.outputs.release_created || github.event_name == 'workflow_dispatch' }}
|