Как остановить отправку электронной почты из конвейера Jenkins при ручной отмене задания в Jenkins - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть конвейер Jenkins, использующий Groovy для отправки статуса сборок по электронной почте, если он неисправен или нестабилен. Но когда я отменяю сборку вручную в Jenkins, электронное письмо все равно отправляется, потому что это воспринимается как сбой. Как я могу заставить Дженкинса не отправлять электронные письма в этой ситуации?

1 Ответ

0 голосов
/ 10 сентября 2018

Можно поиграть с FlowInterruptedException, например, моим не изящным, но работающим решением:

import org.jenkinsci.plugins.workflow.steps.FlowInterruptedException
node(){
    stage("doing things"){
        sendEmailflag = true
        try{
            echo "into try block"
            sleep 10
        }
        catch(org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
            sendEmailflag = false
            echo "!!!caused error $e"
            throw e
        }
        finally{
            if(sendEmailflag == false)
                {echo "do not send e-mail"}
            else
                {echo "send e-mail"}
        }
    }
}

это основано на:

Прервать текущую сборку из конвейера в Дженкинсе

Как поймать ручную отмену пользовательского интерфейса задания в Jenkinsfile

Перехват нескольких ошибок в рабочем процессе Jenkins

...