Github Actions部署突然停滞求助:Build and Deploy阶段超时取消
解决Github Pages部署Build and Deploy阶段停滞问题
根据你的描述和日志信息,构建环节已成功完成,但后续流程卡住直至被取消,结合部署主体变为Github Actions的变化,可按以下步骤排查解决:
1. 确认Github Pages部署来源配置
- 进入仓库的「Settings」→「Pages」页面,检查部署来源是否被意外修改:
- 如果之前是通过
gh-pages分支部署,现在可能被切换为「Github Actions」,导致原有部署流程冲突; - 若要继续使用原有的
gh-pagesnpm包部署方式,需将部署来源改回「Deploy from a branch」,并选择正确的分支(通常是gh-pages)和根目录。
- 如果之前是通过
2. 排查react-snap执行是否卡住
日志中npm run build已成功完成,但predeploy脚本还包含react-snap步骤,却无该步骤的输出,大概率是react-snap在生成静态快照时卡住:
- 临时修改
package.json中的predeploy脚本,去掉react-snap,仅保留npm run build; - 触发一次部署,确认是否能顺利完成,以此验证是否是
react-snap导致的停滞; - 若确认是
react-snap的问题,可尝试更新其版本,或检查项目路由配置(比如动态路由、未处理的异步请求)是否影响快照生成。
3. 解决依赖警告并更新依赖
虽然browserslist的警告不直接导致部署失败,但依赖过时可能引发潜在问题:
- 本地运行命令
npx browserslist@latest --update-db更新浏览器兼容数据; - 提交更新后的
package-lock.json或yarn.lock文件,重新触发部署。
4. 检查Github Actions工作流(若使用Actions部署)
如果当前通过Github Actions部署,需检查.github/workflows目录下的部署工作流文件:
- 查看部署步骤是否存在无限等待逻辑(比如需要人工输入确认);
- 确认Actions使用的
GITHUB_TOKEN是否有足够权限推送代码至部署分支; - 尝试简化工作流步骤,逐步排查停滞环节。
5. 本地测试部署流程
在本地完整执行部署脚本,确认流程是否正常:
- 运行
npm run predeploy,查看构建和快照生成是否顺利完成; - 运行
npm run deploy(若存在该脚本),验证是否能成功将构建产物推送到gh-pages分支; - 本地测试通过后,再回到Github触发部署,排除远程环境问题。
内容的提问来源于stack exchange,提问作者tonyd629
相关产品推荐
相关产品推荐

