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
私は新しいプロジェクトを作りましたが、最終的にはうまくいきました。他の1つが機能しなかった理由がわかりません。私のように同じ問題が発生した場合は、あまり深刻にしないでください。新しいgitlabプロジェクトを作成するだけです。それはあなたの精神的幸福に良いです。
同様の問題があり、Gitを更新する必要がありました。 Centos 7にはgit-1.8.xが付属していますが、gitlab-ciには制限があります。
this ガイドに基づいてgitをアップグレードします。
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
ディレクトリの後に、この例とは異なるランダムな文字列があることに注意してください。