Как включить ошибки конвейера в электронную почту (плагин Email-ext) - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь найти причину, поскольку она напечатана на консоли моего экземпляра Jenkins, почему сборка не удалась по электронной почте.Я сделал следующее

node {
    try 
    {
     stage('checkout') {
      checkout scm
       }
     stage('restore') {
      sh 'dotnetge restore test.sln'
       }
    }
    catch (err) {
       cause=err
       emailext body:"Error: $cause ",
        to: 'myemail@gmail.com'
    }
}

Результат на консоли - что-то вроде «команда dotnetge not found», и я хотел бы получить такую ​​же ошибку по электронной почте.Это то, что я получаю по электронной почте

Ошибка: hudson.AbortException: скрипт вернул код завершения 127

1 Ответ

0 голосов
/ 04 февраля 2019

Так как скрипт оболочки не удался, он выдаст исключение, которое вы получаете в данный момент.Вы можете обойти это:

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: 'myemail@gmail.com'
    }
}

Таким образом, вы можете по крайней мере узнать, какая команда завершилась неудачно.Что еще я сделал, так это то, что создал другую переменную с именем 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}
    }
}
...