Gitlab-runner 构建失败问题排查:
问题起因:
基于gitlab ci 进行自动化构建,当发起 merge_requests请求出发构建时job运行报错,官方推荐升级gitlab-runner 版本,版本升级后运行构建依然货报错,报错内容如下:
Running with gitlab-runner 11.10.1 (1f513601)
on jp.ptmind.com 0ea06a67
Using Shell executor...
Running on jp.ptmind.com...
Reinitialized existing Git repository in /data/builds/0ea06a67/0/。。。backend/.git/
Fetching changes with git depth set to 10...
fatal: git fetch-pack: expected shallow list
fatal: The remote end hung up unexpectedly
ERROR: Job failed: exit status 1
排查解决:
1:升级runner 版本至最新版本,升级期间清理runner 构建目录旧文件目录;
以上配置修改后,首次出发构建可以成功,再次执行merge_requests 再次触发构建,还是会报错,问题未解决;
build:common:
stage: build
tags:
- python3
script:
- cp src/requirements_shared.txt src/common/requirements.txt
。。。。。。。。。。。
only:
refs:
- develop
- staging
- master
- merge_requests
changes:
- src/common/**/*
2:怀疑ci配置逻辑问题,拆解脚本,将merge_requests 与监听分支分开;
build:common:
stage: build
tags:
- python3
script:
- cp src/requirements_shared.txt src/common/requirements.txt
。。。。。。。。。。。
only:
- merge_requests
changes:
- src/common/**/*
再次执行构建,构建构建变成偶尔会失败,点击重试能成功 。。。。。
3:查询相关资料有人反馈,说git版本低会导致用新的git特性不稳定。下面进行git 版本升级;
1.1 先上删除runner的旧的git版本;
注意此时会把gitlab-runner 也删掉,建议现在gitlab 管理平台删除runner,版本升级后在重新添加runner。 升级步骤如下:
删除旧版本git
yum remove git -y
安装3方yum 源,centos7 基础仓库,提供的 git 版本只有到 1.8.3,沒办法使用 git 2 的一些新功能
yum install https://centos7.iuscommunity.org/ius-release.rpm
安装新版本git
yum install git2u -y
验证版本
git --version
重新安装runner
yum install gitlab-runner -y
修改改runner配置:
vi /etc/systemd/system/gitlab-runner.service
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "gitlab-runner"
改为:
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/data/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "root"
重新注册runner
gitlab-runner register
启动runner服务
systemctl daemon-reload
systemctl start gitlab-runner
###参考资料:
https://gitlab.com/gitlab-org/gitlab-ce/issues/60466