name: Publish

# Publicacao manual: usado quando o release ja criou a tag mas o publish do
# workflow de release nao rodou (ou falhou). O fluxo normal publica no job
# "publish" do release.yaml.
on:
  workflow_dispatch:
    inputs:
      ref:
        description: Tag ou branch a publicar (ex. v5.18.0)
        type: string
        required: true
        default: main

jobs:
  publish:
    name: Publish npm
    runs-on: node-runner
    steps:
      - name: Checkout ${{ inputs.ref }}
        uses: actions/checkout@v7
        with:
          ref: ${{ inputs.ref }}

      - name: Setup node
        uses: actions/setup-node@v6
        with:
          node-version: 22
          cache: 'npm'
          registry-url: 'https://registry.npmjs.org'

      - name: Install
        run: npm ci

      - name: Compile
        run: npx rollup -c

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