Skip to content

6.4.0

6.4.0 #1

Workflow file for this run

name: Publish npm Packages
on:
push:
tags:
- '*.*.*'
workflow_dispatch:
inputs:
ref:
description: 'Semver tag to publish, e.g. 1.5.4. Defaults to the selected ref.'
required: false
type: string
permissions:
contents: read
id-token: write
concurrency:
group: npm-publish-${{ github.event.inputs.ref || github.ref }}
cancel-in-progress: false
jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Resolve release ref
id: release
shell: bash
env:
RELEASE_REF: ${{ github.event.inputs.ref || github.ref_name }}
run: |
release_ref="${RELEASE_REF#refs/tags/}"
if [[ ! "$release_ref" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$ ]]; then
echo "::error title=Invalid release ref::Expected a semver tag like 1.5.4 or 1.5.4-beta.1, got '$release_ref'."
exit 1
fi
echo "ref=$release_ref" >> "$GITHUB_OUTPUT"
- name: Checkout
uses: actions/checkout@v6
with:
ref: ${{ steps.release.outputs.ref }}
persist-credentials: false
show-progress: false
submodules: recursive
- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
package-manager-cache: false
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Format
run: pnpm format:check
- name: Build
run: pnpm build
- name: Typecheck
run: pnpm typecheck
- name: Test
run: pnpm test
- name: Publint
run: pnpm exec publint
- name: Publish package
run: pnpm publish --provenance --no-git-checks