You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins配置咨询:如何实现每日最多触发一次新测试任务

无需编写维护bash脚本的Jenkins解决方案

1. 先装两个必备插件

  • Conditional BuildStep Plugin:用来添加条件判断逻辑,控制是否触发新测试任务
  • Build Timestamp Plugin:帮助获取当日日期,方便判断今日是否已触发过新任务

2. 配置原构建任务的构建后操作

在原构建任务的「构建后操作」面板中,按以下步骤配置:

2.1 添加「Conditional steps (multiple)」模块

这是核心的条件控制入口,先设置第一层过滤条件:

  • 选择「Status condition」,将条件设为「Build is stable」——只有当原构建成功且状态稳定时,才会进入后续判断逻辑

2.2 新增第二层判断:今日是否已触发过新任务

在第一层条件的子步骤中,添加另一个「Conditional step」,选择「Run condition」为「Groovy script」,粘贴以下脚本(Groovy是Jenkins原生支持的,无需额外配置环境):

// 生成标准格式的当日日期,确保和构建记录的日期匹配
def today = new Date().format("yyyy-MM-dd")
// 定位到你的新测试任务
def targetJob = Jenkins.instance.getItemByFullName("你的新测试任务名称")
// 检查新任务今日是否有过构建记录
def hasTodayBuild = targetJob.getBuilds().any { 
  it.getTimestamp().format("yyyy-MM-dd") == today 
}
// 如果今日未触发过,返回true,允许执行后续触发操作
return !hasTodayBuild

注意:将脚本中的「你的新测试任务名称」替换为实际的任务名称

2.3 添加触发新任务的操作

在第二层条件的子步骤中,添加「Build other projects」操作,选中你的新测试任务,同时勾选「Trigger only if build is stable」——和第一层条件呼应,双重确保只有稳定构建才会触发新任务

3. 逻辑验证

  • 原构建不稳定:第一层条件不通过,直接跳过新任务触发流程
  • 当日第一次稳定构建:第二层条件检测到今日未触发过新任务,触发新测试任务
  • 当日后续稳定构建:第二层条件检测到今日已有构建记录,不再重复触发
  • 次日稳定构建:日期自动更新,条件重置,允许再次触发新任务

完全符合你的需求:无需定时任务,仅在原构建成功且稳定时执行判断,每日最多触发一次,不用维护繁琐的bash脚本,全程以可视化配置为主,仅需几行简单的Groovy脚本辅助判断。

内容的提问来源于stack exchange,提问作者igdmedvedev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:05:04