自定义GitHub Action工作流未使用gh-pages分支部署GitHub Pages
解决Jekyll工作流从gh-pages分支部署的问题
核心问题
你修改了工作流的触发分支,但部署内容仍来自默认分支,原因是工作流内的代码检出步骤还在拉取默认分支的代码——触发分支仅控制工作流何时运行,不决定构建哪个分支的内容。
具体修复步骤
完善触发配置(可选但建议)
调整触发条件,同时支持push到gh-pages分支和手动触发,方便调试:on: push: branches: [gh-pages] workflow_dispatch: # 新增手动触发选项,便于快速测试部署效果修改代码检出步骤,指定拉取gh-pages分支
找到工作流中的actions/checkout步骤,通过ref参数明确指定拉取gh-pages分支的代码:- name: Checkout code uses: actions/checkout@v4 with: ref: gh-pages # 强制检出gh-pages分支的代码 fetch-depth: 0 # 若Jekyll需要读取提交历史(如生成博客时间线),添加此参数也可以用
${{ github.ref }}替代固定的gh-pages,让工作流自动拉取触发分支的代码,适配更灵活的场景。确认GitHub Pages部署源设置
进入仓库的「Settings」→「Pages」→「Build and deployment」,确保Source选项选择GitHub Actions,而非旧的「Deploy from a branch」。只有选择GitHub Actions,才会使用你自定义的工作流完成部署。验证工作流运行结果
通过手动触发工作流(利用新增的workflow_dispatch选项),查看日志中的「Checkout code」环节,确认检出的是gh-pages分支的代码;再检查部署环节,确认最终上线的是该分支构建的产物。
内容的提问来源于stack exchange,提问作者Miguel Gamboa
相关产品推荐
相关产品推荐

