Jenkins构建过程中常见问题排查与解决
排查思路
查看Jenkins流水线Console Output,分析输出内容,根据报错信息排查。
常见问题
1、报错提示SERVER: Agent version 4.13 or newer is required
原因:jenkins agent版本过低
解决方法:构建slave镜像时使用对应版本的slave镜像。
Jenkins 版本2.277及以后的版本,推荐使用 jenkins/inbound-agent 镜像;jenkins/inbound-agent 镜像,它包含了 Jenkins Remoting,并且是 jenkins/jnlp-slave 的继任者。
注意点
多次构建slave镜像时使用不同版本号,避免本地镜像和harbor仓库镜像冲突,导致流水线失败。
例如,本地jenkins-slave-maven:v1镜像使用jenkins/jnlp-slave:latest镜像构建,并且推送到了harbor仓库,在运行流水线时,发现agent版本过低,这时slave运行在node01上,node01下载了harbor仓库的jenkins-slave-maven:v1镜像;随后使用jenkins/inbound-agent:3107.v665000b_51092-15镜像进行构建,镜像tag还是jenkins-slave-maven:v1,这时node01上的镜像就和harbor仓库中的镜像产生冲突,若再次运行流水线且slave还是运行在node01上,这时会发现流水线构建失败,提示agent版本过低。
2、报错提示ERROR: Unable to pull Docker image "harbor.xxx.cn/library/jenkins-slave-maven:v1". Check if image tag name is spelled correctly
排查步骤
- 1、确认harbor仓库中是否存在版本为v1的jenkins-slave-maven镜像;
- 2、确认是否存在x509报错(每个节点);
- 3、如果使用containerd为容器运行时,使用crictl pull确认是否可以正常下载(代理也会影响,出现
TLS handshake timeout
时不要配置https;本地仓库环境下可以配置no_proxy)。
x509报错解决方法
每个节点执行
1 |
|
3、报错提示ERROR: Couldn't find any revision to build. Verify the repository and branch configuration fo this job.
排查思路
报错提示未能找到要构建的任何修订版。请检查此任务的存储库和分支配置。
此时应检查Gitlab仓库分支以及相关脚本配置。
解决步骤
1、检查Gitlab仓库,发现仓库默认分支设置为master,没有其他分支。
2、检查脚本配置,发现分支设置为main。
1 |
|
3、发现问题根源:脚本配置中的仓库分支与Gitlab仓库分支不符,且Gitlab仓库不存在main分支。
4、修改脚本配置中的分支设置为master。
4、报错提示Build step 'Invoke top-level Maven targets' marked build as failure
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project businessServer: Compilation failure: Compilation failure:
原因:项目构建时jdk环境不匹配,原本需要jdk8来构建的项目配置成jdk11就会导致构建失败
解决方法
- 1、如果是动态slave模式,使用对应jdk版本重新构建slave镜像;
- 2、如果是静态slave,在系统全局工具配置页面新增对应jdk版本,并在构建项目中选择对应jdk版本。