构建项目时开发哥哥反馈有任务构建失败,构建了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"
[1] https://stackoverflow.com/questions/22013217/on-building-jenkins-project-timeout-after-10-minute-error-happens
[2] https://blog.csdn.net/wanglei_storage/article/details/78105763