Может ли одно задание Jenkins обрабатывать два типа сборок? - PullRequest
1 голос
/ 21 апреля 2011

В настоящее время моя команда использует Jenkins для создания автоматических сборок, запускаемых изменениями SVN.

Недавно мы решили, что хотим использовать Sonar.Мы не хотим, чтобы интеграция sonar / hudson происходила для каждой отдельной сборки снимка.Мы просто хотим это раз в неделю или около того.

Наша команда использует clean deploy -U вместо clean deploy site-deploy -U, поэтому простого использования периодической сборки для запуска сонара будет недостаточно, поскольку в нем не будет информации о сайте из сборки (такой как отчет о клевере).

Мой вопрос в том, можно ли в одной работе связать разные цели с разными временами сборки?Я, наверное, не совсем ясно.Могу ли я связать clean deploy -U со сборкой, вызванной изменением SVN, но связать 'clean deploy site-deploy -U' со сборкой, инициированной периодической сборкой?

Является ли мой единственный выбор

1. Убедите всех в необходимости развертывания сайта при каждом построении моментального снимка (что займет больше времени)

ИЛИ

2. Создать новую работу для еженедельной сборки?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

У меня есть подобный опыт в прошлом на работе, вот как я решил проблему.

Просто небольшая настройка необходимых вам инструментов:

  1. Плагин Jenkins Sonar

Проблема, с которой мы столкнулись, заключалась в том, что мы должны запустить сборку с большим количеством тестов, которые значительно удлиняют время сборки, что замедляет живое тестирование инструмента, который мы создавали. Похожа на ситуацию, с которой вы сталкиваетесь. Мы решили создать две сборки, одну для быстрого поворота с разработчиками, и одну, которая занимала больше времени, которая запускалась раз в неделю, но в вашей ситуации вы можете просто использовать настройки плагинов Sonar для решения вашей проблемы, вы можете вызвать его при ручной сборке или опросах SCM.

Существуют настройки, которыми вы можете управлять, когда Sonar запускается в сборке, после установки плагина перейдите к настройке системы.

enter image description here

Я надеюсь, что это было полезно, но это должно привести к желаемому поведению только с одной сборкой. :)

1 голос
/ 21 апреля 2011

Я не знаком с сонаром и тем, как вы вызываете свою сборку, поэтому я не уверен, что этот ответ - то, что вы ищете.

Вы можете использовать плагин Release build или Parameterized Build , чтобы выбрать различные команды для запуска в зависимости от того, как вызывается сборка. При создании релизной сборки вы можете использовать различные команды до и / или после обычной сборки. Сборки релизов обычно запускаются вручную, но вы, вероятно, можете вызывать их извне через CLI или API Hudson. При создании параметризованной сборки вы можете проверить переменную среды (параметр, передаваемый в сборку), чтобы выбрать, какую команду следует запускать.

Был похожий вопрос в списке рассылки пользователей Jenkins некоторое время назад, который может предоставить некоторую дополнительную информацию о том, как запускать различные команды, используя Parameterized Builds.

...