name: Publish npm package with pnpm

on:
    push:
        branches:
            - main
        tags:
            - 'v*'

jobs:
    publish:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v3

            - name: Setup Node.js
              uses: actions/setup-node@v3
              with:
                  node-version: '20'
                  registry-url: 'https://registry.npmjs.org'

            - name: Install pnpm
              uses: pnpm/action-setup@v2

            - name: Install dependencies
              run: pnpm install

            - name: Build
              run: pnpm run build

            - name: Publish to npm
              run: pnpm publish
              env:
                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
