name: Publish to npm

on:
  push:
    branches:
      - main
    paths:
      - package.json
  workflow_dispatch:

jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 24
      - run: |
          PACKAGE_VERSION=$(node -p "require('./package.json').version")
          PUBLISHED_VERSION=$(npm view @josephyoung/pi-file-reference version 2>/dev/null || echo "0.0.0")
          if [ "$PACKAGE_VERSION" != "$PUBLISHED_VERSION" ]; then
            npm publish --provenance --access public
          else
            echo "Version $PACKAGE_VERSION already published, skipping"
          fi
