name: Auto Release

on:
  push:
    tags:
      - 'v*'

permissions:
  contents: write
  id-token: write

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

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

      # - name: Update npm to latest version for OIDC support
      #   run: npm install -g npm@latest

      - name: Install pnpm
        uses: pnpm/action-setup@v4
        with:
          version: 10

      - name: Install deps
        run: pnpm install --frozen-lockfile

      - name: Build
        run: pnpm build
      
      - name: Publish stable release version (with default latest tag)
        if: ${{ ! contains(github.ref_name, '-') }}
        run: NODE_AUTH_TOKEN="" npm publish
      
      - name: Publish unstable pre-release version (with next tag)
        if: ${{ contains(github.ref_name, '-') }} # Refer to Semantic Versioning , use a hyphen to split version code and pre-release identifier
        run: NODE_AUTH_TOKEN="" npm publish --tag next

      - name: Create release (draft)
        uses: softprops/action-gh-release@v2
        with:
          name: "[${{ github.ref_name }}] (新的发布)"
          generate_release_notes: true
          draft: true
          prerelease: ${{ contains(github.ref_name, '-') }}
