Действовать после аварии, только если работа не регрессировала - PullRequest
0 голосов
/ 15 мая 2018

Я хочу реализовать следующие уведомления в моем декларативном конвейере:

(регрессия) → Задание начало сбой!

(сбой) → Задание все еще не выполняется.

(исправлено) → Задание возобновлено.

Не похоже, что post условия могут это сделать.Вместо этого при сбое сборки срабатывает и failure, и regression.Есть условие changed, но я думаю, что эта задача хочет unchanged { failure }, которого не существует.

post {
    regression {
        slackSend message: 'Job has started to fail!'
    }
    failure {
        slackSend message: 'Job is still failing.'
    }
    fixed {
        slackSend message: 'Job has resumed.'
    }  // no need for 'success' as we don't want a notification while it's working
}

Приведенная выше конфигурация будет отправлять следующие уведомления, если задание ранее было выполнено успешно:

(сбой задания)

Задание не удалось запустить!

Задание все еще не выполняется.

(задание не выполнено)

Работа по-прежнему не выполняется.

(работа выполнена)

Работа возобновлена.

Это дополнительное сообщение "Работа по-прежнему не выполняется", когда задание начинает сбой.Есть ли способ обойти это, используя post условия?

В качестве альтернативы, как я могу реализовать это поведение другим способом?Я сделал пропуск на post { always { // decide which message is appropriate } }, но не выяснил, как определить статус предыдущей сборки.

...