自托管GitLab v14.9.1中git push无法触发CI/CD流水线求助
问题描述
自托管GitLab v14.9.1环境中,通过git push命令推送代码时,CI/CD流水线完全不触发;但通过GitLab GUI直接修改文件并提交时,流水线可正常启动。测试用的.gitlab-ci.yaml配置如下:
stages: - deploy pipe: stage: deploy #when: manual image: name: alpine script: - echo "something"
排查与解决步骤
检查分支触发规则
进入项目「设置」→「CI/CD」→「流水线触发规则」,确认推送的分支在允许触发的范围内。若设置了仅特定分支触发,或勾选了「仅受保护分支可触发流水线」,而推送的分支不符合条件,会导致流水线不启动。排查提交信息关键词
在项目「CI/CD」设置中,检查是否启用了「提交信息含特定关键词时跳过流水线」(默认关键词如[skip ci]、[ci skip])。用git log查看最近的提交信息,若包含这类关键词,git push会跳过流水线,修改提交信息后重新推送即可。检查推送命令参数
确认git push时是否添加了--no-ci或ci.skip这类跳过流水线的参数(例如git push origin main --no-ci),去掉此类参数后重新推送尝试。验证Runner状态与配置
进入项目「CI/CD」→「Runner」,确认关联的Runner处于在线状态,且标签与流水线job的标签匹配(若job指定了标签)。同时确保Runner未被配置为仅处理GUI触发的任务。查看Webhooks与服务器日志
进入项目「设置」→「Webhooks」,确认「推送事件」钩子已正常启用。查看GitLab服务器日志(通常路径为/var/log/gitlab/gitlab-rails/production.log),搜索推送相关记录,排查流水线触发失败的具体错误信息。确认.gitlab-ci.yaml的有效性
确保.gitlab-ci.yaml文件位于仓库根目录,且格式无缩进错误(YAML对缩进敏感)。用git ls-files确认文件已提交到当前推送的分支上。检查版本已知Bug
GitLab v14.9.1可能存在推送触发流水线的特定Bug,可查阅官方版本更新日志,若有相关修复,建议升级至后续小版本(如v14.9.5)解决问题。
内容的提问来源于stack exchange,提问作者Gevegeve

