name: Publish to NPM

on:
    workflow_dispatch:
    push:
        tags:
            - 'v*'

permissions:
    id-token: write  # Required for OIDC
    contents: read

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v2
            - uses: actions/setup-node@v1
              with:
                  node-version: '20'
                  registry-url: https://registry.npmjs.org/
            # Ensure npm 11.5.1 or later is installed
            - name: Update npm
              run: npm install -g npm@latest
            - run: npm install
            - run: npm publish
