name: Release

on:
  release:
    types: [created]

jobs:
  publish:
    name: Publish to NPM
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      with:
        ref: main

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

    - name: Install pnpm
      uses: pnpm/action-setup@v4
      with:
        version: 10.13.1

    - name: Install dependencies
      run: pnpm install

    - name: Run quality checks
      run: |
        pnpm check
        pnpm secretlint
        pnpm spell
        pnpm test

    - name: Build project
      run: pnpm build

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