Стадия запуска трубопровода Дженкинс в случае отказа - PullRequest
0 голосов
/ 23 апреля 2020

В моем сценарии Jenkins pipline есть много блоков try / catch, чтобы уведомить меня о сбое. Возможно ли иметь этап, который будет работать только в случае сбоя предыдущего этапа?

Мой текущий сценарий выглядит примерно так.

stage('Stage 1') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}
stage('Stage 2') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}
stage('Stage 3') {
    steps {
        try {
            // do something
        }
        catch(Exception e) {
            bitbucketStatusNotify(buildState: 'FAILED')
            error 'FAILED'
        }
    }
}

Я хочу сделать что-то подобное.

stage('Stage 1') {
    steps {
        // do something
    }
}
stage('Stage 2') {
    steps {
        // do something
    }
}
stage('Stage 3') {
    steps {
        // do something
    }
}
stage('Only Run On Failure') {
    steps {
        bitbucketStatusNotify(buildState: 'FAILED')
    }
}

1 Ответ

1 голос
/ 23 апреля 2020

Чтобы уведомить о сбоях на любом этапе вашего конвейера, используйте Действия после публикации . Для каждого результата конвейера вы можете установить некоторые действия после публикации.

Пример неудачной попытки (любая сборка, которая не заканчивается результатом 'SUCCESS'):

stages{
    stage('Stage 1') {
        steps {
            // do something
        }
    }
    stage('Stage 2') {
        steps {
        // do something
        }
    }
    stage('Stage 3') {
        steps {
            // do something
        }  
    }
post{
    success{
        bitbucketStatusNotify(buildState: 'SUCCESS')
    } 
    unsuccessful{
        bitbucketStatusNotify(buildState: 'FAILED')
    }    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...