如何包括管道发生错误,电子邮件(邮箱-EXT插件)

问题描述 投票:0回答:1

我想有,因为它是我的印詹金斯实例的控制台上,为什么一个构建通过电子邮件失败的原因。我做了以下

node {
    try 
    {
     stage('checkout') {
      checkout scm
       }
     stage('restore') {
      sh 'dotnetge restore test.sln'
       }
    }
    catch (err) {
       cause=err
       emailext body:"Error: $cause ",
        to: '[email protected]'
    }
}

在控制台上的结果是一样的东西“dotnetge找不到命令”,我会希望有通过电子邮件这种相同类型的错误。这是我通过电子邮件收到

错误:hudson.AbortException:脚本返回的退出码127

jenkins jenkins-pipeline jenkins-plugins
1个回答
0
投票

由于shell脚本失败了,它会给你目前所得到的例外。你可以有一个变通方法来处理这个问题:

node {
    try
    {
        stage('checkout') {
            checkout scm
        }
        stage('restore') {
            try{
                sh 'dotnetge restore test.sln'}
            catch(exc){
                error "dotnetge command failed"
            }
        }
    }
    catch (err) {
        cause=err
        emailext body:"Error: $cause ",
                to: '[email protected]'
    }
}

这样你至少可以知道哪个命令失败。还有什么我所做的是我创建的另一个变量称为curr_stage并指定其值设置为当前阶段:

node{
    def curr_stage
    try {
        stage("stage1") {
            curr_stage = "stage1"
        }
        stage("stage2") {
            curr_stage = "stage2"
        }
        stage("stage3") {
            curr_stage = "stage3"
        }
    }catch(exception){
        //notify that the the build failed at ${curr_stage}
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.