name: Publish

on:
  push:
    branches:
      - main

env:
  RELEASE_APP_ID: 795363
  RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
  PJ_GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}

jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      issues: write
      pull-requests: write
      id-token: write
    steps:
      - uses: actions/create-github-app-token@v3
        id: app-token
        with:
          app-id: ${{ env.RELEASE_APP_ID }}
          private-key: ${{ env.RELEASE_APP_PRIVATE_KEY }}
      - uses: actions/checkout@v6
        with:
          token: ${{ steps.app-token.outputs.token }}

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

      - run: npm ci
      - run: npm run build
      - run: git config --global user.email "gh-actions"
      - run: git config --global user.name "gh-actions"

      - run: npx semantic-release
      - run: |
          git status
          git add -A
      - run: |
          if git diff --staged --quiet; then
            echo "No changes to commit"
          else
            git commit -m "autogen: release"
            git push --force origin main
          fi
