jenkins学习14-构建触发器之定时构建和轮询 SCM

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins学习14-构建触发器之定时构建和轮询 SCM相关的知识,希望对你有一定的参考价值。

前言

跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。
jenkins的定时任务是用的crontab语法,参考这篇https://www.cnblogs.com/yoyoketang/p/11167181.html

定时构建语法

五颗星,中间用空格隔开

* * * * *
  • 第一颗*表示分钟,取值0~59
  • 第二颗*表示小时,取值0~23
  • 第三颗*表示一个月的第几天,取值1~31
  • 第四颗*表示第几月,取值1~12
  • 第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

1.每30分钟构建一次:

H/30 * * * *

2.每2个小时构建一次

H H/2 * * *

3.每天早上8点构建一次

0 8 * * *

4.每天的8点,12点,22点,一天构建3次

0 8,12,22 * * *

(多个时间点,中间用逗号隔开)

定时构建(Build periodically)

定时构建(Build periodically):周期性进行项目构建,这个是到指定的时间必须触发构建任务.
比如我想在每天的9点,17点,朝九晚五各构建一次,在定时构建(Build periodically)里设置如下

这时候会看到一个提示分散负载应该用 ‘H 9,17 * * *’ 而不是 ‘0 9,17 * * *’,这个意思是让我们尽量用H 9,17 * * *

那么前面的H是什么意思呢?

为了允许定期计划的任务在系统上产生负载,应在可能的情况下使用符号H ( for"哈希") 。 
例如对于十几个日常工作,使用 0 0 * * * 将导致午夜的大峰值。 相反,使用H * * * 每天仍然会执行每一次作业,但同时使用有限的资源,更好地使用有限的资源。

所以这里改成H 9,17 * * *

可以看到下次运行的时间:

上次运行的时间 Tuesday, March 24, 2020 5:14:12 PM CST; 下次运行的时间 Wednesday, March 25, 2020 9:14:12 AM CST.

轮询 SCM(Poll SCM)

轮询 SCM(Poll SCM):定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作
如果我想每隔30分钟检查一次源码变化,有变化就执行:H/30 * * * *

忽略钩子 post-commit: 关于钩子(webhook)可以参考这篇https://www.cnblogs.com/yoyoketang/p/12535907.html

如果勾选了,那么前面那篇设置的钩子(webhook)就会失效。

以上是关于jenkins学习14-构建触发器之定时构建和轮询 SCM的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins定时构建和轮询SCM设置说明

Jenkins学习第二节 jenkins构建触发器定时任务

jenkins常用构建触发器,SonarQube代码审查

jenkins常用构建触发器,SonarQube代码审查

Jenkins——Jenkins项目构建细节(触发构建和)和SonarQube代码审查

Jenkins——Jenkins构建Maven项目(三种风格)+Jenkins项目构建细节