name: Build and Deploy Sources

on:
  push:
    branches: [ "main" ]
  workflow_dispatch:

permissions:
  contents: write

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      # 1. 配置 Rust 环境，并明确添加 wasm32 目标
      - name: Setup Rust toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: wasm32-unknown-unknown

      # 2. 缓存 Cargo (加快后续构建)
      - name: Cache Cargo registry
        uses: actions/cache@v3
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-cargo-

      # 3. 安装 aidoku-cli 工具 (这是修复 "aidoku: command not found" 的关键)
      - name: Install aidoku-cli
        run: |
          # 从官方最新的 aidoku-rs 仓库安装 cli 工具
          cargo install --git https://github.com/Aidoku/aidoku-rs aidoku-cli

      # 4. 执行构建脚本
      - name: Build Sources
        run: |
          chmod +x build.sh
          ./build.sh

      # 5. 验证构建结果 (调试用)
      - name: List Output Files
        run: ls -R public || echo "Public folder not found"

      # 6. 部署到 gh-pages
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public
          force_orphan: true
          user_name: 'github-actions[bot]'
          user_email: 'github-actions[bot]@users.noreply.github.com'
