如何在单个GitHub仓库的不同分支中创建多个GitHub Pages页面?
同一仓库多环境GitHub Pages页面的替代解决方案
方案1:单gh-pages分支按环境分目录
这是最省心的方案,不用折腾多分支,把不同环境的测试报告放到gh-pages分支的不同子目录里就行,比如/dev/、/qa/。
- 配置GitHub Actions时,把dev环境的测试报告产物上传到gh-pages分支的
dev目录,qa的传到qa目录 - 示例Action片段:
- name: 部署dev测试报告到gh-pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dev-test-report destination_dir: dev # 指定上传到gh-pages的dev子目录
- 访问路径:主页面用默认URL,dev报告是
https://<用户名>.github.io/<仓库名>/dev/,qa报告是https://<用户名>.github.io/<仓库名>/qa/
方案2:用主分支的docs目录(限单额外环境)
如果你的main分支下有docs目录,可以单独把它设为Pages源,和gh-pages分支的主页面共存,但只能多一个环境:
- 仓库设置→Pages→源选择
main分支的/docs目录,用来放dev或qa的测试报告 - gh-pages分支依然做主页面的源
- 缺点:没法同时支持dev和qa两个环境,适合只加一个额外环境的场景
方案3:自定义域名绑定子路径/子域名
如果有自定义域名,可以给不同环境配子域名或子路径:
- 比如主页面用
https://你的域名/<仓库名>/,dev报告用https://dev.你的域名/<仓库名>/,qa报告用https://qa.你的域名/<仓库名>/ - 每个子域名对应绑定gh-pages-dev、gh-pages-qa分支,需要在DNS服务商那边设置A/CNAME记录,同时在GitHub仓库的Pages设置里分别配置对应分支和自定义域名
方案4:拆分到独立仓库
要是上面的方案都不合适,干脆把不同环境的测试报告拆分到单独的仓库:
- 比如建
<仓库名>-dev和<仓库名>-qa两个仓库,各自用gh-pages分支发布对应环境的报告 - 优点:完全隔离,不会有URL冲突;缺点:要维护多个仓库,管理成本略高
内容的提问来源于stack exchange,提问作者Sean F
相关产品推荐
相关产品推荐

