DevOps进阶(四):Jenkins构建触发器定时构建项目

一、在任务设置-构建触发器模块,选中“Build periodically


二、然后在日程表里输入你的定时构建时间,输入的时间语法参考如下:

  1. 时间字段遵循cron的语法,每行由TAB或空格分隔的5个字段组成:MINUTE HOUR DOM MONOW DOW
  • 分钟:小时内的分钟数(0-59)
  • 小时 :一天中的小时(0-23)
  • DOM:月份的日子(1-31)
  • 月 :月份(1-12)
  • DOW:星期几(0-7),其中0和7是星期天。
  1. 要为一个字段指定多个值,可以使用以下运算符。按照优先顺序,
  • * 指定所有有效的值
  • M-N 指定一个值的范围;
  • M-N/X或者*/X通过指定范围或整个有效范围的X的间隔步进;
  • A,B,…,Z 枚举多个值;

为了允许定期安排的任务在系统上产生负载,H应尽可能使用符号(对于“散列”)。例如,0 0 * * 十几个日常工作会在午夜时间造成大量的高峰。相比之下,使用H H * *仍然会每天执行一次,但不是同时执行,能够更好地使用有限的资源。

H符号可以与范围一起使用。例如,H H(0-7) * * * 意味着从凌晨12:00到凌晨7:59之间的某个时间。也可以使用H带或不带范围的步长间隔。

该H符号可以被认为是一个范围内的随机值,但它实际上是作业名称的散列,而不是随机函数,因此对于任何给定的项目,该值都保持稳定。

请注意,对于月份的日期,由于月份长度可变,因此在大多数月份结束时,短周期(例如/3H/3不会一致)都会一直工作。例如,/3将在一个月的第1,4,… 31天运行,然后再在下个月的第二天运行。哈希总是选在1-28范围内,所以H/3在一个月的月底之间会产生3到6天的间隔。(更长的周期也会有不一致的长度,但效果可能相对不那么明显)。

以空格开头的空#行将被忽略为注释。

  1. 此外,@yearly,@annually,@monthly, @weekly,@daily,@midnight,并且@hourly也支持方便的别名。这些使用哈希系统进行自动平衡。例如,在一小时内的任何时间@hourly都是一样的H * * * *@midnight实际上是指从12:002:59 AM之间的一段时间。

另外,Poll SCM:定时行的执行,源码有变化才会执行 比如配置:*/10 * * * * 这样配置就会10分钟去检查svn是否有新源码,有就checkout,构建,没有就继续去潇洒,10分钟后再回来检查。
4. 例子:

a. 每十五分钟(也许在:07,:22,:37,:52)

H / 15 * * * *

b、每小时上半场每十分钟一班(三次,也许是:04,:14,:24)

H0-29/ 10 * * * *

c、从上午9:45开始每小时45分钟,每个工作日下午3:45结束,每两小时一次。

45 9-16 / 2 * * 1-5

d、每个工作日上午9点到下午5点之间,每两小时一次(也许在上午10:38,下午12:38,下午2:38,下午4:38)

HH9-16/ 2 * * 1-5

e、12月份以外的每月1日和15日每天一次

HH 1,15 1-11 *

f、每10分钟构建一次:H/10 * * * **/10 * * * *
g、每天8点构建一次:0 8 * * *
h、每天8点~17点,两小时构建一次:0 8-17/2 * * *
i、周一到周五,8点~17点,两小时构建一次:0 8-17/2 * * 1-5
j、1-6月中每月1号、30号各构建一次:H H 1,30 1-6 *
k、每周7天从9:10点到20:10每隔一小时构建一次:10 9-20 * * 1-7

相关文章

前言我们于2022年5月宣布推出 AmazonDevOpsGuruforServerle...
GIT、GITLAB、GITHUB、GITLIBGit是一款免费、开源的分布式版...
初识JFrog Artifactory背景在软件项目开发中,一个项目常常依...
xcopy 若目标盘上不存在此子目录,而在目标盘的结束符又不以&...
DevOps软件开发工艺解读随着业务复杂化和人员的增加,开发人...