Jenkins管道 - 在构建开始之前和构建之后自动发送电子邮件,而不在Jenkinsfile中添加任何代码行

时间:2017-01-09 17:49:22

标签: jenkins jenkins-pipeline

目前我们正在使用" send.notifyBuild(' STATUS')"在我们的Jenkinsfile中(注意 - 方法,notifyBuild来自我们的全局lib)。我想知道Jenkins Multibranch Pipeline项目是否能够在构建之前和之后默认发送电子邮件。甚至没有在JenkinsFile中指定一行代码。

node{
    try{
     stage ('Checkout'){
     checkout scm
     send.notifyBuild('STARTED')
     }

     stage ('Build'){
        sh "source ./environment.sh;mvn clean deploy"
     }

     send.notifyBuild('SUCCESSFUL')

     }catch(err){
        send.notifyBuild('FAILED')
        throw err
    }   


}

1 个答案:

答案 0 :(得分:2)

由于您已经在使用全局库,我建议将其添加到您的库中。这是一种很好的格式化方法:

node {
    withNotification {
        stage ('Checkout') {
            checkout scm
        }
        stage ('Build') {
            sh "source ./environment.sh;mvn clean deploy"
        }
    }
}

然后,在你的lib的vars/withNotification.groovy文件中:

def call(Closure body) {
    send.notifyBuild('STARTED')
    try {
        body()
        send.notifyBuild('SUCCESSFUL')
    } catch (err) {
        send.notifyBuild('FAILED')
        error "Build failed, caught exception: ${err}"
    }
}

我发现这种模式对于低样板流水线非常有用。