从Jenkins发送一封自动电子邮件,要求每小时排除一次已通过的构建失败

wkyowqbh  于 2023-05-06  发布在  Jenkins
关注(0)|答案(1)|浏览(134)

如何将bitbucket存储库集成到Jenkins并每5分钟执行一次。预先获得每个失败构建的电子邮件通知,并每小时获得所有通过构建的通知。使用案例
1.为几个页面URL创建自动化测试-完成
1.每5分钟执行一次(使用Jenkins计划)-完成
1.一旦任何构建失败就发送电子邮件-完成
1.每隔1小时发送一封电子邮件,用于过去1小时内通过的所有构建(不包括失败的构建)-需要帮助

tv6aics1

tv6aics11#

您需要合并:

每小时触发

使用groovy + mail构建查询

import hudson.model.*

node {
    def nowDateInMilliseconds = new Date().getTime();
    def job = Jenkins.instance.getItemByFullName('my_job-full_name');
    def lastHourSucessBuild = [];
    
    for(def build in job.builds){
        if (build.result!=hudson.model.Result.SUCCESS) continue;
        
        def lastSuccessBuildDateOnMillis = build.getTime().getTime();
        long diff = nowDateInMilliseconds - lastSuccessBuildDateOnMillis;
        long diffMinutes = diff / (60 * 1000);         
        println build.number+" : Time in minutes: " + diffMinutes
        if(diffMinutes<60)lastHourSucessBuild.add(build.number)
    }
    
    println "Last hour success builds: " + lastHourSucessBuild
    
    emailext (
      subject: "Last hour success builds",
      body: "Last hour success builds: " + lastHourSucessBuild,
      to: "test@gmail.com"
    )
}

完整作业配置here

建议

我建议一点一点地尝试:

  • 配置emailext并以演示形式发送邮件
  • 配置构建触发器并每分钟打印一条消息

只有当你实现了这些演示,合并在一个脚本管道所有;)

相关问题