Gitlab-runner 構建失敗問題排查
阿新 • • 發佈:2019-05-01
重新 systemctl The merge system req 配置 sha rem Gitlab-runner 構建失敗問題排查:
問題起因:
基於gitlab ci 進行自動化構建,當發起 merge_requests請求出發構建時job運行報錯,官方推薦升級gitlab-runner 版本,版本升級後運行構建依然貨報錯,報錯內容如下:
Running with gitlab-runner 11.10.1 (1f513601) on jp.ptmind.com 0ea06a67 Using Shell executor... Running on jp.ptmind.com... Reinitialized existing Git repository in /data/builds/0ea06a67/0/。。。backend/.git/ Fetching changes with git depth set to 10... fatal: git fetch-pack: expected shallow list fatal: The remote end hung up unexpectedly ERROR: Job failed: exit status 1
排查解決:
1:升級runner 版本至最新版本,升級期間清理runner 構建目錄舊文件目錄;
以上配置修改後,首次出發構建可以成功,再次執行merge_requests 再次觸發構建,還是會報錯,問題未解決;
build:common: stage: build tags: - python3 script: - cp src/requirements_shared.txt src/common/requirements.txt 。。。。。。。。。。。 only: refs: - develop - staging - master - merge_requests changes: - src/common/**/*
2:懷疑ci配置邏輯問題,拆解腳本,將merge_requests 與監聽分支分開;
build:common:
stage: build
tags:
- python3
script:
- cp src/requirements_shared.txt src/common/requirements.txt
。。。。。。。。。。。
only:
- merge_requests
changes:
- src/common/**/*
再次執行構建,構建構建變成偶爾會失敗,點擊重試能成功 。。。。。
3:查詢相關資料有人反饋,說git版本低會導致用新的git特性不穩定。下面進行git 版本升級;
1.1 先上刪除runner的舊的git版本;
註意此時會把gitlab-runner 也刪掉,建議現在gitlab 管理平臺刪除runner,版本升級後在重新添加runner。
升級步驟如下:
刪除舊版本git
yum remove git -y
安裝3方yum 源,centos7 基礎倉庫,提供的 git 版本只有到 1.8.3,沒辦法使用 git 2 的一些新功能
yum install https://centos7.iuscommunity.org/ius-release.rpm
安裝新版本git
yum install git2u -y
驗證版本
git --version
重新安裝runner
yum install gitlab-runner -y
修改改runner配置:
vi /etc/systemd/system/gitlab-runner.service
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "gitlab-runner"
改為:
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/data/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "root"
重新註冊runner
gitlab-runner register
啟動runner服務
systemctl daemon-reload
systemctl start gitlab-runner
###參考資料:
https://gitlab.com/gitlab-org/gitlab-ce/issues/60466
Gitlab-runner 構建失敗問題排查