# name: Deploy Pages

# # 触发条件，push到main分支或者pull request到main分支
# on:
#   push:
#     branches: [main]
#   pull_request:
#     branches: [main]

#   # 支持手动在工作流上触发
#   workflow_dispatch:

# # 设置时区
# env:
#   TZ: Asia/Shanghai

# # 权限设置
# permissions:
#   # 允许读取仓库内容的权限。
#   contents: read
#   # 允许写入 GitHub Pages 的权限。
#   pages: write
#   # 允许写入 id-token 的权限。
#   id-token: write

# # 并发控制配置
# concurrency:
#   group: pages
#   cancel-in-progress: false

# # 定义执行任务
# jobs:
#   # 构建任务
#   build:

#     runs-on: ubuntu-latest

#     # node v20 运行
#     strategy:
#       matrix:
#         node-version: [20]

#     steps:
#       # 拉取代码
#       - name: Checkout
#         uses: actions/checkout@v4
#         with:
#           # 保留 Git 信息
#           fetch-depth: 0

#       # 设置使用 Node.js 版本
#       - name: Use Node.js ${{ matrix.node-version }}
#         uses: actions/setup-node@v4
#         with:
#           node-version: ${{ matrix.node-version }}

#       # 使用 最新的 PNPM
#       # 你也可以指定为具体的版本
#       - uses: pnpm/action-setup@v4
#         name: Install pnpm
#         with:
#           version: latest
#           # version: 9
#           run_install: false

#         # 安装依赖
#       - name: Install dependencies
#         run: pnpm install --no-frozen-lockfile
#         # 锁定依赖版本
#         # run: pnpm install --frozen-lockfile

#         # 构建项目
#       - name: Build blog project
#         run: |
#           echo ${{ github.workspace }}
#           pnpm build

#         # 资源拷贝
#       - name: Build with Jekyll
#         uses: actions/jekyll-build-pages@v1
#         with:
#           source: ./docs/.vitepress/dist
#           destination: ./_site

#         # 上传 _site 的资源，用于后续部署
#       - name: Upload artifact
#         uses: actions/upload-pages-artifact@v3

#   # 部署任务
#   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
name: Deploy to 1Panel & GitHub Pages

# ===========================
# 触发条件
# ===========================
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_dispatch:

# 设置时区
env:
  TZ: Asia/Shanghai

# 权限设置
permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: pages
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [22]

    steps:
      # 1. 拉取代码
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      # 2. 设置 Node.js
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}

      # 3. 安装依赖 (npm)
      - name: Install dependencies
        run: npm install

      # 4. 构建项目
      - name: Build blog project
        run: npm run build

      # --------------------------------------------------
      # 分支任务 A: 部署到 1Panel (路径已修改)
      # --------------------------------------------------
      - name: Deploy to 1Panel via SCP
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          
          # 源文件 (保持不变)
          source: "docs/.vitepress/dist/*"
          
          # 【关键修改】目标路径改为 1Panel 指定的路径
          # 注意：这里假设你在 1Panel 创建网站时，代号填的是 "blog"
          target: "/opt/1panel/apps/openresty/openresty/www/sites/blog/index"
          
          # 去掉路径前缀
          strip_components: 3

      - name: Fix 1Panel Permissions
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          script: |
            # 【关键修改】修复新路径的权限
            # 1Panel 容器通常使用 1000:1000 作为 www 用户
            chown -R 1000:1000 /opt/1panel/apps/openresty/openresty/www/sites/blog/index

      # --------------------------------------------------
      # 准备分支任务 B: 为 GitHub Pages 上传构建产物
      # --------------------------------------------------
      - name: Upload artifact for GitHub Pages
        uses: actions/upload-pages-artifact@v3
        with:
          path: docs/.vitepress/dist

  # ==================================================
  # 任务 2: 部署到 GitHub Pages
  # ==================================================
  deploy-gh-pages:
    needs: build
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4