jenkins04-构建触发器
- Jenkins自动化是指项目按照一定的规则自动执行,这些规则被称为项目触发条件。
- 对于触发条件,可以从两个维度来区分:时间触发和事件触发。
时间触发是指定义一个时间,时间到了就会触发项目执行。
1、定时执行:cron
- 定时执行就像cronjob,一到时间点就执行。它的使用场景通常是执行一些周期性的job,如每夜构建。
- Jenkins trigger cron语法采用的是UNIX cron语法(有些细微的区别)。
- 一条cron包含5个字段,使用空格或Tab分隔,格式为:MINUTE HOUR DOM MONTH DOW。
- 每个字段的含义为:
- MINUTE:每小时的第几分钟,取值范围为0∼59。
- HOUR:每天的第几小时,取值范围为0∼23。
- DOM:每月的第几天,取值范围为1∼31。
- MONTH:月份,取值范围为1∼12。
- DOW:每周的第几天,取值范围为0∼7。0和7代表星期天。
- 还可以使用以下特殊字符,一次性指定多个值。
- *:匹配所有的值
- M-N:匹配M到N之间的值。
- M-N/X or */X:匹配指定范围或整个有效范围,并以X为步长的值。
- A,B,· · ·,Z:使用逗号枚举多个值。
- 在一些大型组织中,会存在同一时刻执行多个的定时任务的情况,比如每天的零点(0 0 * * *)执行任务,这样会产生负载不均衡。在Jenkins trigger cron语法中使用“H”字符来解决这一问题,H代表hash。(H符号可以被认为是一个范围内的随机值,但它是作业名称的哈希值,而不是一个随机函数,因此该值对于任何给定的项目都保持稳定。)
- 对于没必要准确到零点执行的任务,cron可以这样写:H 0 * * *,代表在0点0分至0点59分之间任何一个时间点执行。
- 需要注意的是,H应用在DOM(一个月的某一天)字段时会有不准确的情况,因为一个月可能是31天,也可能是28天。
- Jenkins trigger cron还设计了一些人性化的别名:@yearly、@annually、@monthly、@weekly、@daily、@midnight和@hourly。它们使用哈希值进行自动平衡。
- @hourly与H * * * *相同,代表一小时内的任何时间;
- @midnight代表在凌晨00:00到02:59之间的某个时间。
#每隔15分钟(可能在:07、:22、:37、:52) H/15 * * * * #在每小时的前半个小时每十分钟(三次,可能在:04、:14、:24) H(0-29)/10 * * * * #每周一到周五,从09:45到16:45每两个小时执行一次 45 9-16/2 * * 1-5 #每周一到周五,从08:00到15:00每两个小时执行一次(可能在09:38、11:38、13:38、15:38) H H(8-15)/2 * * 1-5 #除12月外,每月1日和15日每天一次 H H 1,15 1-11 *
1.1、
1
# #