一、构建方式说明
1、快照依赖构建/Build whenever a SNAPSHOT dependency is built
当依赖的快照被构建时执行本job
2、触发远程构建 (例如,使用脚本)
远程调用本job的restapi时执行本job
3、job依赖构建/Build after other projects are built
当依赖的job被构建时执行本job
4、定时构建/Build periodically
使用cron表达式定时构建本job
5、向GitHub提交代码时触发Jenkins自动构建/GitHub hook trigger for GITScm polling
Github-WebHook出发时构建本job
6、定期检查代码变更/Poll SCM
使用cron表达式定时检查代码变更,变更后构建本job
二、每种构建触发器的使用
1、触发远程构建
- 触发器token的值
格式: JENKINS_URL/job/jenkins-demo/build?token=TOKEN_NAME
1、url: http://192.168.11.131:8080/jenkins 是部署jenkins对应的url地址后面的jenkins是部署的jenkins的项目名
2、/job/jenkins-demo/build : 中间的jenkins-demo是当前配置的项目名都是固定的
3、token=TOKEN_NAME: token值是需要自定在上面的输入框自己定义的
最终的token值为
http://192.168.11.131:8080/jenkins/job/jenkins-demo/build?token=jenkins-demo-token
注意 build authorization token root(触发钩子免登录插件)
正常的触发远程脚本构建,在登录的状态下请求token的url是会触发的,但是如果登录失效,请求则不同,此时就需要该插件
2、Jenkins cron表达式
标准的cron(和标准的cron表达式不同)
https://crontab.guru
Jenkins cron不是标准的cron表达式
第一个 * 表示每个小时的第几分钟,取值0~59
H * * * *
H:每小时执行一次
第二颗 * 表示小时,取值0~23
* 15 * * * 表示每天下午3点
* 1 * * * 表示每天凌晨1点
第三颗 * 表示一个月的第几天,取值1~31
* 1 5 * * 表示每月5日凌晨1点
第四颗 * 表示第几月,取值1~12
* 15 5 1 * 表示每年几月执行
第五颗 * 表示一周中的第几天,取值0~7,其中0和7代表的都是周日
“/”
表示每隔多长时间,比如 */10 * * * * 表示 每隔10分钟
“H”
hash散列值,以job名取值,获取到以job名为入参的唯一值,相同名称值也相同,这个偏移量会和实际时间相加,获得一个真实的运行时间
意义在于:不同的项目在不同的时间运行,即使配置的值是一样的,比如 都是15 * * * * ,表示每个小时的第15分钟开始执行任务,那么会造成同一时间内在Jenkins中启动很多job,换成H/15 * * * *,那么在首次启动任务时,会有随机值参与进来,有的会在17分钟启动 有的会在19分钟启动,随后的启动时间也是这个值。这样就能错开相同cron值的任务执行了。
H的值也可以设置范围
H * * * *表示一小时内的任意时间
*/10 * * * *每10分钟
H/10 * * * *每10分钟,可能是7,17,27,起始时间hash,步长不变
45 3 * * 1-6 每个周一至周六,凌晨3点45 执行1次
45 3-5 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨4点45,凌晨5点45 各执行1次
H(40-48) 3-5 * * 1-6 在40~48之间取值 其他同上
45 3-5/2 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨5点45 各执行1次
45 0-6/2 * * 1-6 * * 1-6 0点开始,每间隔2小时执行一次 0:45、2:45、4:45
3、源码变更构建
使用Poll SCM 方式与Build periodically一样文章来源:https://uudwc.com/A/mG1
会主动定期检查代码托管服务器上是否有变化,一旦发生变化执行job构建文章来源地址https://uudwc.com/A/mG1