gitlabRunner不适用于特定项目

时间:2019-06-19 08:19:06

标签: gitlab-ci gitlab-ci-runner

我注册了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

6 个答案:

答案 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。

  1. 在.gitlab-ci.yml中,使用该选项进行git clone:
variables:
  GIT_STRATEGY: clone
  1. 在Gitlab中的项目选项中,将项目更改为使用“ git clone”。
    在Gitlab Web gui中,转到您的项目,然后:“设置-> CI / CD->常规管道”。
    更改以下选项:
    • “管道的Git策略”:“ git clone”
    • “ Git浅表克隆”为:0

答案 3 :(得分:0)

我遇到了类似的问题,我不得不更新Git。 Centos 7带有git-1.8.x,它在gitlab-ci方面有局限性。

根据this指南升级您的git。

答案 4 :(得分:0)

您可以解决此问题,而无需完全升级git:

1。克隆策略

设置为.gitlab-ci.yml

variables:
  GIT_STRATEGY: clone  

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

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

从gitlab-runner服务器中手动删除构建目录,因此它将不得不再次克隆它。
对于项目testgroup/testproject,运行:
请注意rm命令!

rm -rf /home/gitlab-runner/builds/UwnzuxxL/0/testgroup/testproject  

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

答案 5 :(得分:0)

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