web-dev-qa-db-ja.com

gitlabランナーが特定のプロジェクトで機能しない

GitLabランナーの11プロジェクトを登録しました。各プロジェクトのランナーは、1つのプロジェクトを除いて正常に機能します。このプロジェクトのランナーを初めて登録したところ、うまくいきました。しかし、いくつかの変更をコミット/プッシュした後、エラーが発生してジョブが失敗します。 gitバージョンをアップグレードすると問題が解決するいくつかの解決策を見ましたが、そうは思いません。このプロジェクトを除いて、すべてのランナーが正常に機能するためです。

サーバーOS:CentOS 7
git:1.8.3.1

First time registered runner
>Running with gitlab-runner 11.9.2 (...)
  on (...)
Using Shell executor...
Running on localhost.localdomain...
Initialized empty Git repository in /home/gitlab-runner/(...)/.git/
Clean repository
Fetching changes with git depth set to 50...
Created fresh repository.
From https://gitlab.com/(...)
 * [new branch]      master     -> Origin/master
Checking out (...) as master...
Skipping Git submodules setup
$ echo "> gitlab-ci started"
> gitlab-ci started
$ cd /home/(..)
$ echo "> git pull started"
> git pull started
$ git pull
remote: Total 0 (delta 0), reused 0 (delta 0)
Already up-to-date.
Job succeeded

2番目のコミット/プル、次に

>Running with gitlab-runner 11.9.2 (...)
  on (...)
Using Shell executor...
Running on localhost.localdomain...
Reinitialized existing Git repository in /home/gitlab-runner/(...)/.git/
Clean repository
Fetching changes with git depth set to 50...
fatal: remote Origin already exists.
fatal: git fetch-pack: expected shallow list
ERROR: Job failed: exit status 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
Sungmin Park

私は新しいプロジェクトを作りましたが、最終的にはうまくいきました。他の1つが機能しなかった理由がわかりません。私のように同じ問題が発生した場合は、あまり深刻にしないでください。新しいgitlabプロジェクトを作成するだけです。それはあなたの精神的幸福に良いです。

0
Sungmin Park

同様の問題があり、Gitを更新する必要がありました。 Centos 7にはgit-1.8.xが付属していますが、gitlab-ciには制限があります。

this ガイドに基づいてgitをアップグレードします。

0
betontalpfa

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ディレクトリの後に、この例とは異なるランダムな文字列があることに注意してください。

0
Ofek Hod