【问题标题】:Jenkins - sending email depends on console outputJenkins - 发送电子邮件取决于控制台输出
【发布时间】:2021-05-21 09:50:32
【问题描述】:

我有一个 Java 应用程序,我想使用 Jenkins 运行该应用程序。 该应用程序可以记录信息“[Email] 示例日志”或在某些情况下引发特定异常。

现在,当 Jenkins 在其控制台输出中看到时,我想在构建后使用 Jenkins 发送电子邮件:

  • 日志:[电子邮件] .....
  • 已抛出特定异常

我配置了可编辑的电子邮件通知和 Emailext(所有电子邮件参数,如 smtp 等都已完成),我可以将其添加到构建后操作 [1]:https://i.stack.imgur.com/8psbf.png

但我以前从未使用过 Jenkins,我不知道在这种情况下我应该选择哪个触发器以及在哪里/如何编写“if 代码”来做我想做的事。

编辑:我可能应该写一些预发送脚本?

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-plugins


    【解决方案1】:

    如果您想发送电子邮件,则可以直接将其添加到管道中。
    配置系统
    转到管理 Jenkins-> 配置系统。在此处向下滚动到电子邮件通知部分。如果您使用的是 Gmail,则为 SMTP 服务器键入 smtp.gmail.com。单击高级并选择使用 SMTP 身份验证。输入您的 Gmail 用户名和密码。选择使用 SSL 选项并输入端口号为 465。单击应用,然后单击保存。
    创建 Jenkins 管道作业

    pipeline {
        agent any
    stages {
    stage("Send Email")
       {
         steps {
                    
                    emailext body: 'your body', subject: 'your sububject', to: 'abc@gmail.co,'
              }
       }
     }
    }
    

    以上方法是一个示例,向您展示如何通过管道发送电子邮件。
    执行您的应用程序,然后发送电子邮件

    pipeline {
        agent any
    stages {
    stage("App execution")
       {
         steps {
                    // Execute your app 
                    bat label: 'Execute your app', script:"yourapp.bat >log.txt "
              }
       }
    stage("Send Email")
       {
         steps {
                    
                    emailext body: 'your body', subject: 'your sububject', to: 'abc@gmail.co,'
              }
       }
     }
    }
    
    

    根据条件发送电子邮件

    pipeline {
        agent any
    stages {
    stage("App execution")
       {
         steps {
                    // Execute your app 
                    bat label: 'Execute your app', script:"yourapp.bat >log.txt "
              }
       }
    stage("Send Email")
       {
         steps {
                    // You can add condition based on your log file in previous step :
                    // Example : please change below code as per your logic
                    // if log contains "Email" then only send email
                    if(log.contains(" Email:")){
                     emailext body: 'your body', subject: 'your subject', to: 'abc@gmail.co,'
                   }
              }
       }
     }
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多