博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jenkins的构建编号和一个有趣的bug
阅读量:6716 次
发布时间:2019-06-25

本文共 1252 字,大约阅读时间需要 4 分钟。

什么是构建编号

jenkins每个job的每一次构建都有一个属于自己独立的构建编号,每一次的构建结果(成功或失败)所使用的编号都是不相同的。

正确的构建编号:每个job的每次构建结果使用不相同的构建编号

错误的构建编号:多个job的每次构建结果使用相同的构建编号

 

 

多个job相同的构建编号引起的bug

举例说明:

比如有A,B,C三个job,使用相同的构建编号

当A构建时,将构建编号由1011提升至1012。

而此时要构建B,则必须连续点击二次,才会出现响应。

原因:B的初始编号为1011,它需要比当前的最大+1,才可以被构建。构建编号的递增 1011->1012->1013

而如果要构建C,则必须连续点击三次,才会出现响应。

原因:C的初始编号为1011,它需要比当前的最大+1,才可以被构建。1011->1012->1013->1014

如果多个job的构建编号是相同的(共享同一个),当产生一个新的最大构建编号时,其它job就会出现连续多次点击都未响应。

它直到点击N多次将自己的构建编号累加到比最大的编号+1,这个job才可以被执行。

本次构建编号=上次编号+1

引发上面的bug 原因是多个job使用相同的构建编号。

那么我们是如何发现上面的计算公式的呢?

答案:从jenkins的运行日志中

打开 系统管理 System Log(系统日志从java.util.logging捕获Jenkins相关的日志信息。) - 所有系统日志

用户的每一次操作,都有记录,可以从日志中发现上述公式

造成多个job构建编号相同的原因

上面的bug是否是jenkins自己引起的呢?

答案:否

打开jenkins的系统设置:

管理员身份登录 - 系统管理 - 系统设置 - 主目录 - 高级

 

jenkins的默认设置中,有一个主目录(workspace),并为每一个job和每一次的构建结果都提供了独立的目录

我原本是想修改默认的workspace(主目录),但错误地删除了jenkins为每一个job提供的独立目录(把工作空间根目录和构建记录根目录改成了固定值)

注意:主目录(workspace工作空间)是针对全局设置的,对于任何一个job还可以自定义工作空间,在后面的文章中,我会进行介绍。

每一次构建都产生了什么?

在jenkins中,每一次的构建记录都会被保留起来。

保存位置:默认保存在workspace/job name /构建编号/

每一次构建,都会创建一个以构建编号命令的文件夹

举例说明构建记录产生的文件

  • log:保存着此次构建在Console中输出的日志
  • build.xml:构建的信息,包括构建参数,构建结果,启动的用户名,启动时间戳
  • changelog.xml:修改日志

所有job的根目录

单个Job的根目录

单个job的所有构建日志

单个job的单次构建记录

转载于:https://www.cnblogs.com/zhaoqingqing/p/7204478.html

你可能感兴趣的文章
小测试
查看>>
涨姿势一下:#include<>和#include""的区别
查看>>
quartz spring配置
查看>>
centos备份与还原
查看>>
fixed 兼容ie6
查看>>
To Be an Architect : 架构的一些基本概念
查看>>
数据恢复软件哪个好
查看>>
『火车进出栈问题 卡特兰数』
查看>>
第四天:HTTP&Tomcat
查看>>
python 文件和路径操作函数小结
查看>>
条件+努力=?
查看>>
HBase分布式安装
查看>>
我为什么要录制Java Swing桌面应用程序开发课程
查看>>
201508025 课后命令练习总结
查看>>
RHEL 6.1下Apache与Tomcat整合
查看>>
安装nginx小计
查看>>
添加绿色,×××和红色区域
查看>>
linux系统中单网卡添加多个ip
查看>>
APUE读书笔记-01UNIX系统概述(1)
查看>>
APUE读书笔记-15进程内部通信-10客户服务特性
查看>>