---
name: release-please

on:
  workflow_run:
    workflows:
      - QA
    types:
      - completed
  # manual
  workflow_dispatch:
    inputs:
      publish-release:
        description: Publish the release?
        required: true
        default: "false"

permissions:
  contents: write
  issues: write
  pull-requests: write
  id-token: write

jobs:
  release-please:
    runs-on: ubuntu-24.04
    steps:
      - uses: googleapis/release-please-action@v5
        id: release
        with:
          manifest-file: .github/.release-please-manifest.json
          config-file: .github/release-please-config.json

      - if: ${{ github.event.inputs.publish-release == 'true' || steps.release.outputs.release_created }}
        uses: actions/checkout@v7

      - if: ${{ github.event.inputs.publish-release == 'true' || steps.release.outputs.release_created }}
        uses: actions/setup-node@v7
        with:
          registry-url: "https://registry.npmjs.org"
          node-version: 24
          cache: "npm"
          cache-dependency-path: package-lock.json

      - if: ${{ github.event.inputs.publish-release == 'true' || steps.release.outputs.release_created }}
        run: >
          unset NODE_AUTH_TOKEN &&
          npm ci &&
          npm run build &&
          npm publish --provenance --access public
