Мы рассматриваем возможность использования плагина Jenkins Pipeline для довольно сложного проекта, состоящего из нескольких поставок, которые необходимо собрать с использованием различных инструментов (на разных машинах) перед объединением. Тем не менее, кажется, достаточно легко сделать полную сборку с одним Jenkinsfile
, и мне нравится автоматическое открытие ветвей git, которые поставляются с Pipeline.Запуск частей трубопровода в качестве отдельного задания
Однако на данном этапе у нас есть рабочие места для каждой поставки и использование мета-задания на основе потока, чтобы организовать отдельные задания. Самое приятное в этом состоит в том, что он также позволяет запускать только одну индивидуальную работу, если только небольшие изменения были сделаны, чтобы убедиться, что эта поставка все еще компилируется.
Для имитации этого, некоторые идеи пришли на ум:
- Используйте различные
Jenkinsfile
с для поставок иload
их в верхнем уровнеJenkinsfile
; похоже, что задание Multibranch Pipeline не позволяет настроитьJenkinsfile
для использования (https://issues.jenkins-ci.org/browse/JENKINS-35415), поэтому создание заданий для отдельных поставок по-прежнему остается открытым. - Предоставьте конфигурационный параметр для задания «верхнего уровня» и введите
if
s для всех поставок вJenkinsfile
, чтобы иметь возможность выбирать, что должно быть создано. Тем не менее, это будет смешивать разные типы сборки в одном конвейере и, по крайней мере, испортить оценку времени сборки.
Являются ли эти жизнеспособные варианты, или есть лучший?
Этот вопрос очень похож на http://stackoverflow.com/questions/38129745/jenkins-build-pipeline-restart-at-stage, хотя этот вопрос касается перезапуска. Тем не менее, ответы на этот вопрос также касаются этого вопроса. – olenz