В восходящем задании Jenkins / Hudson не отображается цвет индикатора состояния нижележащих заданий.

У меня есть работа в восходящем направлении, которая выполняет 4 нисходящих задания.

Если восходящее задание завершается успешно, нисходящие задания начинают свое выполнение.

После успешного завершения восходящее задание получает синий шар (результат сборки = стабильный), но даже если последующие задания терпят неудачу (красный шар) или нестабильны (желтый шар), восходящее задание сохраняет свой синий цвет.

Есть ли способ получить результат восходящего задания, зависящего от нисходящих заданий? Я имею в виду, что если три нисходящих задания получают стабильную сборку, но одно из них получает нестабильную сборку, результат восходящей сборки должен быть нестабильным.


person victorgp    schedule 26.05.2011    source источник
comment
Этот подход очень полезен (см. Лучшее решение): stackoverflow.com/questions/5487104/   -  person vetalok    schedule 25.06.2012


Ответы (5)


Я нашел решение. Существует подключаемый модуль Groovy Postbuild pluging, который позволяет выполнять сценарий Groovy на этапе после сборки. Добавьте простой код к нижележащим заданиям, чтобы изменить общий статус восходящего потока.

Это код, который вам нужно добавить:

upstreamBuilds = manager.build.getUpstreamBuilds();

upstreamJob = upstreamBuilds.keySet().iterator().next();

lastUpstreamBuild = upstreamJob.getLastBuild();

if(lastUpstreamBuild.getResult().isBetterThan(manager.build.result)) {
    lastUpstreamBuild.setResult(manager.build.result);
}

Дополнительную информацию можно найти в записи моего блог здесь.

person victorgp    schedule 14.06.2011

Другой вариант, который может сработать для вас, - использовать плагин параметризованной сборки. Это позволяет вам иметь 4 «нисходящих» сборки в качестве этапов сборки. Это означает, что ваша «родительская» сборка может дать сбой, если произойдет сбой любой из дочерних сборок.

Мы делаем это, когда хотим скрыть сложность представления плагина build-pipeline .

person Geoff Bullen    schedule 31.05.2011
comment
Здравствуйте, спасибо за ваш ответ, но не могли бы вы объяснить мне немного подробнее, что вы имеете в виду? Я не понимаю, как я могу использовать этот плагин, чтобы родительский модуль терпел неудачу, если последующие задания терпят неудачу. Спасибо! - person victorgp; 31.05.2011

У нас была похожая проблема, и мы не нашли идеального решения. Частичное решение - использовать подключаемый модуль расширенных сборок. Настройте его для своего восходящего проекта, чтобы он включал некоторый визуальный индикатор, когда последующее задание завершается. Это не меняет общего статуса задания, но уведомляет нас о сбое последующего задания.

person Jason Swager    schedule 27.05.2011

Возможно, этот плагин сделает то, что вы ищете?

Плагин этапа сборки Jenkins Prerequisite

person jaustin    schedule 08.07.2011

работа для моего проекта состоит в том, чтобы создать новую работу, которая является нисходящим потоком нисходящих потоков. Мы установили шаг после сборки «Запуск параметризованной сборки в других проектах» для всех трех исходных последующих заданий. Параметр, который анализирует новое задание, зависит от состояния трех заданий, и этот параметр вызывает соответствующую реакцию нового задания.

1. Создайте новое задание, которое содержит один простой урок и один простой тест. Оба параметра зависят, т.е. класс не работает, если параметр "status" = fail, класс проходит, но тест не проходит, если параметр "status"=unstable, и т. Д.

2. Задайте параметризованную сборку триггера для других проектов для трех исходных последующих заданий с соответствующими конфигурациями.

3. Установите соответствующее уведомление о новом задании.

person Community    schedule 01.06.2011