目录

1、构建触发器

1.1、触发远程构建

1.2、cron表达式

1.3、Build periodically(定期构建)

1.4、Poll SCM(轮询 SCM)

1、构建触发器

1.1、触发远程构建

1、设置Jenkins远程构建地址

  • 注意事项:复制地址到postman或者另外一个新的浏览器中访问该地址,会要求进行身份认证(在浏览器中弹出登录页面),需要完成认证后才能成功触发。所以远程的gitlab服务调用会失败,解决这个问题,需要安装插件:Build Authorization Token Root,实现远程调用免登录认证。

2、gitlab远程调用配置

  • 1、配置路径:进入到指定项目页面->setting->Webhooks(gitlab发起远程调用的配置项)
    • 注意:如果使用的http协议,Enable SSL verification 项需要取消勾选

  • 2、当出现错误:Url is blocked: Requests to the local network are not allowed(不允许对本地网络的请求)

  • 解决方式:菜单->设置->网络->出站请求->勾选:Allow requests to the local network from web hooks and services

 

  • 3、设置完成后重新配置Webhooks,然后点击保存,成功后会出现如下信息:

1.2、cron表达式

说明:cron在线验证,可以在该网站完成cron表达式的验证和练习:Crontab.guru - The cron schedule expression editor

  • 1、cron的组成部分:cron表达式一共5部分组成

  • 2、cron符号含义说明:
    • * :表示任意值
    • , :表示多个值的分隔符,如:minute 对应的cron值为:10,20,30 分别表示在第10分钟、第20分钟、第30分钟
    • - :表示值的范围,如:minute对应的cron值为:1-10 表示在1到10分钟这个闭区间
    • / :表示值的步长,如:minute对应的cron值为: */10 表示10、20、30、40、50、00分
  • 注意事项:cron表达式不支持秒级的构建

1.3、Build periodically(定期构建)

定义:这是一种基于时间间隔触发构建的方式。可以指定一个 Cron 表达式来定义构建的时间规则,Jenkins 将根据该表达式在特定的时间点自动触发构建。

1、定期执行任务

  • 定期执行任务指的是到了构建时间,准时执行,示例如下:
    • 30 8 * * * :表示每天的8:30执行
    • */10 * * * * :表示每隔10分钟执行一次

2、分散构建执行

  • 分散构建执行指的是,把设置的构建时间分散不同的时间点执行,实现的方式通过使用“H”关键字指定需要分散的时间,可作用与每个时间取值
  • 原理:根据项目名称生成一个hash散列值,该hash值与H标记的时间进行运算,此时计算后的时间就会偏离实际指定的时间,因此每个任务的触发时间都会稍微有所偏移,从而避免了完全同时触发构建。
  • 示例:
    • H * * * * :表示每小时的固定分钟时间(由项目名的hash散列值决定)构建一次
    • H(0-30)/10 * * * * :表示在每个小时的前半个小时内的起始时间不固定(先取间隔值为10,即第10分钟为起始值+项目名的hash散列值,由于当时的秒数不固定,所以起始时间也就不固定),步长固定10分钟执行一次

1.4、Poll SCM(轮询 SCM)

定义:这是一种基于源代码管理系统(SCM)的变动来触发构建的方式。Jenkins 会定期轮询 SCM 工具(如 Git、Subversion 等)检查代码仓库中是否有新的提交或更新。如果检测到仓库有变动,Jenkins 将触发构建。你可以指定轮询的时间间隔以及要监视的 SCM 工具和仓库地址。

  • 注意事项
    • 确保配置合适的时间间隔以避免频繁的构建,以节约资源和提高效率。同时,也要注意平衡构建触发的粒度,避免过于频繁或不必要的构建。
    • 同样支持分散构建执行
  • 示例:
    • H/10 * * * * :表示将每个任务的轮询时间间隔设置为每隔 10 分钟的某个随机时间。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐