Skip to content

Publish to npm (manual) #17

Publish to npm (manual)

Publish to npm (manual) #17

Workflow file for this run

name: Publish to npm (manual)
on:
workflow_dispatch:
inputs:
confirm:
description: 'Type PUBLISH to confirm'
required: true
type: string
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Confirm intent
if: inputs.confirm != 'PUBLISH'
run: |
echo "::error::You must type PUBLISH to confirm. Got: ${{ inputs.confirm }}"
exit 1
ci:
runs-on: ubuntu-latest
needs: verify
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Type check
run: npm run typecheck
- name: Build
run: npm run build
- name: Test
run: npm run test
env:
FORCE_COLOR: '1'
publish:
runs-on: ubuntu-latest
needs: ci
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}