gitlabRunner不适用于特定项目

Sun*_*ark 2 gitlab-ci gitlab-ci-runner

我注册了gitlabRunner的11个项目。

除1个项目外,每个项目的跑步者都可以正常工作。

我第一次注册该项目的执行者,它可以工作。

但是在我提交/推送某些更改后,会发生错误并导致作业失败。

我看到一些解决方案,升级git版本可以解决问题,但我不这么认为。

因为除此项目外,所有跑步者都可以正常工作。

服务器操作系统:CentOS 7
git:1.8.3.1

首次注册亚军


在(...)上
使用gitlab-runner 11.9.2运行(...)使用Shell executor ...
在localhost.localdomain上运行...
/ home / gitlab-runner /(...)中已初始化的空Git存储库/.git/
清理存储库
将git深度设置为50的更改正在获取...
创建了新的存储库。
https://gitlab.com/(...)*
[新分支] master- > origin / master
检出(...)作为master ...
跳过Git子模块设置
$ echo“> gitlab-ci启动了”
gitlab-ci启动
$ cd / home /(..)$
echo“> git pull start ”
git pull启动
$ git pull
远程:总计0(增量0),已重用0(增量0)
已经是最新的。

工作成功




第二次提交/拉动,然后

在(...)
上运行gitlab-runner 11.9.2(...)
使用Shell executor ...
在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
Run Code Online (Sandbox Code Playgroud)

Rya*_*els 44

有几个选项可以解决这个问题。问题是您的跑步者上的 git 版本太旧了。有时您无法在 runner 上更新 git。

修复选项:

  1. 在 runner 上升级到较新版本的 git。

  2. 在 .gitlab-ci.yml 中,使用 git clone 选项:

variables:
  GIT_STRATEGY: clone
Run Code Online (Sandbox Code Playgroud)
  1. 配置 Gitlab,将项目管道Git 策略更改为“git clone”。

    3.1. 在 Gitlab web gui 中,

    3.2. 去你的项目,

    3.3. 然后:“设置 -> CI / CD -> 常规管道”。

    3.4. 更改以下选项:

    • “管道的 Git 策略”到:“git clone”
    • “Git 浅克隆”到:0

  • 非常感谢,选项 #3 救了我的命,因为在我的跑步者上更新 git 时遇到了麻烦。 (3认同)

Ofe*_*Hod 6

你可以在不升级 git 的情况下解决这个问题:

1. 克隆策略

设置于.gitlab-ci.yml

variables:
  GIT_STRATEGY: clone  
Run Code Online (Sandbox Code Playgroud)

现在,您所做的每个更改都将触发重新克隆项目,从而避免需要有问题的git fetch-pack命令。

2.手动删除项目目录(不推荐)

从 gitlab-runner 服务器中手动删除构建目录,因此必须再次克隆它。
对于项目testgroup/testproject,运行:
小心 rm 命令!

rm -rf /home/gitlab-runner/builds/UwnzuxxL/0/testgroup/testproject  
Run Code Online (Sandbox Code Playgroud)

请注意,在builds目录之后有一个与本示例不同的随机字符串。


Ham*_*ian 5

Centos 7附带git版本1.8.3.1。此版本不支持git fetch-pack之类的命令。要解决此问题,您可以从IUS存储库更新服务器上的git。 从第三方IUS存储库将Centos 7上的git更新到版本2


小智 5

在 gitlab.com 上检查项目的 CI/CD 设置中的值。如果“gitshallowclone”中有任何值,请将其删除并保存更改。现在您的管道将按预期工作。 看图片