Jenkins git克隆代码时出现"Timeout"错误
构建项目时开发哥哥反馈有任务构建失败,构建了3个任务,有1个任务是失败的--重试了也是如此,于是查看了这几个仓库,发现除了代码仓库的容量大小不一致外,并无二致--任务失败的代码仓库容量比较大,已经接近1G的大小了。
同时从Jenkins任务的Console Output有如下报错信息:
+refs/heads/*:refs/remotes/origin/* # timeout=10 ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: Command "git fetch --no-tags --progress -- https://git.xx.com.xx/xx/xxx-xxx.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: remote: Enumerating objects: 562, done
结果提示是git在克隆代码失败导致整个构建任务失败,信息明朗了,于是尝试将timeout
值改成10以上。
步骤
以多分支流水线为例,“分支源->高级的克隆行为->克隆和拉取操作的超时时间(分钟)”,缺省是10分钟,配置成高于10分钟
以上是针对单个任务的,实际上可以更改Jenkins的全局Timeout,参数如下:
-Dorg.jenkinsci.plugins.gitclient.Git.timeOut=1200
以kubernetes的编排YAML为例:
containers:
- name: jenkins2
image: jenkins/jenkins:2.230-alpine
imagePullPolicy: Always
ports:
- containerPort: 8080
- containerPort: 50000
env:
- name: LIMITS_MEMORY
valueFrom:
resourceFieldRef:
resource: limits.memory
divisor: 1Mi
- name: JAVA_OPTS
value: "-Xmx$(LIMITS_MEMORY)m -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50-Dhudson.slaves.NodeProvisioner.MARGIN0=0.85"
- name: JENKINS_JAVA_OPTIONS
value: "-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true -Duser.timezone=Asia/Shanghai -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=1200"