name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]
  # 允许手动触发
  workflow_dispatch:

# 设置权限以部署到 Pages
permissions:
  contents: read
  pages: write
  id-token: write

# 确保只有一个部署任务运行
concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  # 构建任务
  build:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v7

      - name: Setup pnpm & Node.js
        uses: pnpm/setup@v2.1.0
        with:
          runtime: node@24
          cache: true
          require-lockfile: true

      - name: Build project
        run: pnpm run build
      
      - name: Create pages directory
        run: mkdir -p _site
      
      - name: Copy examples
        run: cp -r examples/* _site/
      
      - name: Copy dist files
        run: cp -r dist _site/
      
      - name: Setup Pages
        uses: actions/configure-pages@v4
        with:
          enablement: true
        continue-on-error: true
      
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: '_site'

  # 部署任务
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4
        continue-on-error: true
      
      - name: Check deployment status
        run: |
          if [ "${{ steps.deployment.outcome }}" == "success" ]; then
            echo "✅ GitHub Pages 部署成功!"
            echo "🌐 访问地址: ${{ steps.deployment.outputs.page_url }}"
          else
            echo "❌ GitHub Pages 部署失败，可能的原因："
            echo "1. GitHub Pages 功能未启用"
            echo "2. 仓库权限配置不正确" 
            echo "3. Pages 源未设置为 GitHub Actions"
            echo ""
            echo "📖 请参考项目根目录的 GITHUB_PAGES_SETUP.md 文件进行配置"
            echo ""
            echo "🔧 手动配置步骤："
            echo "   1. 进入仓库 Settings > Pages"
            echo "   2. Source 选择 'GitHub Actions'"
            echo "   3. 在 Settings > Actions > General 中启用读写权限"
            echo ""
            exit 1
          fi