参考单个 GitHub 帐号下添加多个 GitHub Pages 的相关问题
参考 Github Pages Docs
# 概述
- GitHub Pages 分为: 用户 / 组织主页以及项目主页
- 用户主页或组织主页分别都只能存在一个 repo,而项目主页则没有 repo 数量限制
- 若要发布用户主页,必须创建名为 <username>.github.io 的 repo; 若要发布组织主页,必须创建名为 <organization>.github.io 的 repo; 而项目主页的仓库则没有名称限制
- 用户主页默认域名形式为 <username>.github.io
- 组织主页默认域名形式为 <organization>.github.io
- 项目主页默认域名形式为 <username>.github.io/<repository> 或者 <organization>.github.io/<repository>
- 用户主页或组织主页的展示内容以主分支 (master 分支或 main 分支) 里的文件为准;而项目主页的展示内容以 gh-pages 分支内的文件为准
# 示例
以部署一个 VuePress 项目主页为例
- 参考 VuePress 指南在本地建立好项目
- 建立一个 Github 仓库,取名任意
- 参考 VuePress 部署部署项目到 Github 上- 注意在配置文件中设置正确的 base 选项,在该示例中 base应为第2步建立的仓库名
- 编写 GitHub Actions工作流
- 推送 本地仓库到GitHub远程仓库
- 进入 GitHub项目仓库找到Settings下的Pages,修改Build and deployment下的branch选项为gh-pages(此操作会触发 GitHub Actions 进行重新部署)
 
- 注意在配置文件中设置正确的 base 选项,在该示例中 
- 访问部署好的页面 ( Github项目仓库的Settings下的Pages页面可以看到)
# GitHub Actions 工作流参考
在本地项目根目录下新建
.github/workflows/docs.yml文件来设置工作流
下面的工作流示例和 VuePress 官方写的工作流写的略有不同,官方使用的pnpm作为包管理器,而工作流示例直接使用Node.js自带的npm,而且新增一步安装vuepress@next依赖(针对使用VuePrss 2.x版本),构建脚本步骤也进行了修改
| name: Build and Deploy | |
| on: | |
|   # 每当 push 到 main 分支时触发部署 | |
| push: | |
| branches: [main] | |
|   # 手动触发部署 | |
| workflow_dispatch: | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
|           # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 | |
| fetch-depth: 0 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
|           # 选择要使用的 node 版本 | |
| node-version: 16 | |
|           # 缓存 npm 依赖 | |
| cache: npm | |
|       # 安装 VuePress(基于 VuePress 2.x) | |
| - name: Install VuePress | |
| run: npm install -D vuepress@next | |
|       # 运行构建脚本(使用 npm 命令) | |
| - name: Build VuePress site | |
| run: npm run docs:build | |
|       # 查看 workflow 的文档来获取更多信息 | |
|       # @see https://github.com/crazy-max/ghaction-github-pages | |
| - name: Deploy to GitHub Pages | |
| uses: crazy-max/ghaction-github-pages@v2 | |
| with: | |
|           # 部署到 gh-pages 分支 | |
| target_branch: gh-pages | |
|           # 部署目录为 VuePress 的默认输出目录 | |
| build_dir: docs/.vuepress/dist | |
| env: | |
|           # @see https://docs.github.com/cn/actions/reference/authentication-in-a-workflow#about-the-github_token-secret | |
| GITHUB_TOKEN: $<!--swig0--> | 
