好的,我决定采用方式A,请基于当前项目.github\workflows中的deploy.yml,新增一个CI 工作流 deploy-custom-domain.yml。
要求:
1.该工作流不设置 BASE_PATH(或显式设置为 /)
2.构建产物将使用根路径,适合自定义域名部署


我已经查看了现有的 deploy.yml 文件。现在为你创建新的 deploy-custom-domain.yml 工作流。

name: Build and Deploy to Custom Domain

on:
  # 推送到 custom-domain 分支时触发
  push:
    branches: [custom-domain]

  # 支持手动触发
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # 1. 检出代码
      - name: Checkout
        uses: actions/checkout@v4

      # 2. 设置 Node.js 环境
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'npm'

      # 3. 安装依赖
      - name: Install dependencies
        run: npm ci

      # 4. 动态创建 .env 文件
      - name: Create .env file
        run: |
          echo "VITE_GITHUB_OWNER=${{ secrets.GH_OWNER }}" > .env
          echo "VITE_GITHUB_REPO=${{ secrets.GH_REPO }}" >> .env
          echo "VITE_GISCUS_REPO_ID=${{ secrets.GISCUS_REPO_ID }}" >> .env
          echo "VITE_GISCUS_CATEGORY_ID=${{ secrets.GISCUS_CATEGORY_ID }}" >> .env

      # 5. 执行构建(不设置 BASE_PATH,使用根路径 /)
      - name: Build
        run: npm run build
        env:
          GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
          VITE_GITHUB_OWNER: ${{ secrets.GH_OWNER }}
          VITE_GITHUB_REPO: ${{ secrets.GH_REPO }}
          VITE_GISCUS_REPO_ID: ${{ secrets.GISCUS_REPO_ID }}
          VITE_GISCUS_CATEGORY_ID: ${{ secrets.GISCUS_CATEGORY_ID }}

      # 6. 部署到 GitHub Pages(自定义域名)
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GH_TOKEN }}
          publish_dir: ./dist

两个工作流的关键差异对比

对比项 deploy.yml(GitHub Pages) deploy-custom-domain.yml(自定义域名)
触发分支 main custom-domain
BASE_PATH /chunking-blog/ 不设置(默认 /
定时触发 每 6 小时
部署目标 stuffren.github.io/chunking-blog/ 自定义域名(根路径)

使用方式

  1. 创建文件:将上述内容保存到 .github/workflows/deploy-custom-domain.yml
  2. 创建分支:在本地创建并推送 custom-domain 分支
    git checkout -b custom-domain
    git push origin custom-domain
  3. 配置自定义域名
    • 在仓库 Settings > Pages > Custom domain 中填写你的域名
    • 添加 DNS 解析记录(CNAME 或 A 记录)
  4. 触发部署:推送代码到 custom-domain 分支,或手动触发工作流

注意事项

  • 两个工作流独立运行,互不影响
  • main 分支继续部署到 stuffren.github.io/chunking-blog/
  • custom-domain 分支部署到自定义域名(根路径)
  • 如需同步内容,可将 main 分支的更改合并到 custom-domain 分支