我注册了gitlabRunner的11个项目。
除1个项目外,每个项目的执行者都可以正常工作。
我第一次注册该项目的执行者,它可以工作。
但是在我提交/推送某些更改后,会发生错误并导致作业失败。
我看到一些解决方案,升级git版本可以解决问题,但我不这么认为。
因为所有跑步者都可以正常工作,除了这个项目。
服务器操作系统:CentOS 7
git:1.8.3.1
首次注册赛跑者
使用gitlab-runner 11.9.2(...)
运行 在(...)
使用Shell执行器...
在localhost.localdomain上运行...
在/home/gitlab-runner/(...)/.git/
中初始化了空的Git存储库 清理存储库
将git深度设置为50时正在获取更改...
创建了新的存储库。
来自https://gitlab.com/(...)
* [新分支] master-> origin / master
正在以(...)身份检出主机...
跳过Git子模块设置
$ echo“> gitlab-ci开始了”
gitlab-ci开始了
$ cd / home /(..)
$ echo“> git pull开始了”
git pull开始了
$ git pull
远程:总计0(增量0),已重用0(增量0)
已经是最新的。
作业成功
第二次提交/拉动,然后
使用gitlab-runner 11.9.2(...)
运行 在(...)
使用Shell执行器...
在localhost.localdomain上运行...
在/home/gitlab-runner/(...)/.git/
中重新初始化现有的Git存储库 清理存储库
将git深度设置为50时正在获取更改...
致命:远程起源已经存在。
致命:git fetch-pack:预期的浅表
错误:作业失败:退出状态1
编辑。这是我的.gitlab-ci.yml
stages:
- deploy
deploy_to_master:
stage: deploy
script:
- echo "> gitlab-ci started"
- cd /home/www/dir
- echo "> git pull started"
- git pull
- echo "> permission set"
- chmod 707 -R ./data/
- chmod 707 -R ./plugin/nice/
- chmod 707 ./favicon.ico
- echo "> server reload(=httpd -k graceful)"
- systemctl reload httpd
only:
- master
tags:
- tags
答案 0 :(得分:5)
Centos 7随附git版本1.8.3.1。此版本不支持git fetch-pack之类的命令。要解决此问题,您可以从IUS存储库更新服务器上的git。 update git on Centos 7 to version 2 from third-party IUS repo
答案 1 :(得分:0)
我做了一个新项目,最后工作正常。我不知道为什么它不起作用。 如果像我这样发生一些问题,请不要认真。只需创建一个新的gitlab项目。这对您的精神有好处。
答案 2 :(得分:0)
有一些解决方案。问题是您的跑步机上的git版本太旧。有时您无法在运行器上更新git。
修复选项:
1.在Runner上升级到较新版本的git。
variables:
GIT_STRATEGY: clone
答案 3 :(得分:0)
我遇到了类似的问题,我不得不更新Git。 Centos 7带有git-1.8.x,它在gitlab-ci方面有局限性。
根据this指南升级您的git。
答案 4 :(得分:0)
您可以解决此问题,而无需完全升级git:
设置为.gitlab-ci.yml
:
variables:
GIT_STRATEGY: clone
现在,您所做的每一项更改都将触发重新克隆项目,从而避免了有问题的git fetch-pack
命令的使用。
从gitlab-runner服务器中手动删除构建目录,因此它将不得不再次克隆它。
对于项目testgroup/testproject
,运行:
请注意rm命令!
rm -rf /home/gitlab-runner/builds/UwnzuxxL/0/testgroup/testproject
请注意,在builds
目录之后,您拥有一个与该示例不同的随机字符串。
答案 5 :(得分:0)