# Publication du paquet @johanleroy/git-arboretum sur le registre npm du Gitea,
# déclenchée UNIQUEMENT par un tag vX.Y.Z (jamais sur un push de branche).
name: Release

on:
  push:
    tags: ['v*']

permissions:
  contents: read
  packages: write

jobs:
  publish:
    name: Publish to Gitea npm registry
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          registry-url: 'https://git.lidge.fr/api/packages/johanleroy/npm/'
          scope: '@johanleroy'
          cache: npm
      - run: npm ci
      - run: npm run build
      # Garde-fou : le tag (sans le "v") doit correspondre à la version du paquet.
      # GITHUB_REF_NAME est une variable d'env du runner (pas d'interpolation ${{ }} dans le shell).
      - name: Verify tag matches package version
        run: |
          pkg=$(node -p "require('./packages/server/package.json').version")
          tag="${GITHUB_REF_NAME#v}"
          if [ "$pkg" != "$tag" ]; then
            echo "ERREUR: tag '$tag' != version paquet '$pkg'"
            exit 1
          fi
          echo "OK: tag $tag == version $pkg"
      - run: npm publish -w @johanleroy/git-arboretum
        env:
          # Mapper le secret du registre (PAT Gitea write:package, ou le token auto
          # GITEA_TOKEN s'il a ce scope) sur NODE_AUTH_TOKEN lu par le .npmrc de setup-node.
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
