一、构建方式说明

在这里插入图片描述

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一样

会主动定期检查代码托管服务器上是否有变化,一旦发生变化执行job构建

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐