Запланировать конкретную цель сборки в Jenkins? - PullRequest
8 голосов
/ 21 октября 2011

Группа, в которой я работаю, стандартизировала сборки Jenkins для сборок с непрерывной интеграцией.Регистрация кода запускает стандартную сборку, анализ Cobertura и публикацию в репозитории Artifactory SNAPSHOT.Я только что закончил добавлять новую цель в основной файл сборки, который запускает запуск сонара, но я не хочу, чтобы он запускался при каждой регистрации.

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

Конечно, я мог бы создать отдельный проект Jenkins только для запуска цели Sonar по расписанию, но я стараюсь избегатьчто если я могу.Наш сервер Jenkins уже имеет несколько сотен сборок;Удвоение того, что ради планирования ночных сборок не очень желательно.Я искал плагин Jenkins, который мог бы облегчить это, но я ничего не мог найти.Есть предложения?

Ответы [ 2 ]

7 голосов
/ 22 октября 2011

Вот один из способов сделать это, если вы в порядке запуска сборки, используя cron или какой-либо другой инструмент планирования:

  • Сделайте сборку параметризованной и используйте параметр в вашем файле сборки, чтобы решить, должна ли цель сборки сонара работать или нет.
  • Удаленный запуск сборки по HTTP POST: значения параметров в виде http://[jenkins-host]/jobs/[jobname]/buildWithParameters. В зависимости от версии и конфигурации Jenkins вам может потребоваться добавить токен аутентификации и включить его в свой URL.
  • Аутентифицируйте свой POST, используя имя пользователя и пароль.

    wget --auth-no-challenge --http-user=USERNAME --http-password=PASSWORD "https://[jenkins-host]/job/[jobname]/buildWithParameters?token=<token defined in job configuration>&<param>=<value>&<param2>=<value2>"

3 голосов
/ 17 декабря 2011

Я также ищу решение для этого.Мое текущее решение в моей голове состоит в том, чтобы создать 2 триггера в обычной сборке, один - ночная сборка, другой - Polling SCM

.СКМ сменить.Поэтому только ночная сборка начнет анализ сонара.

У меня не было возможности проверить его сейчас, но я полагаю, что это сработает.

Обновлено 19.12.2011Приведенное выше решение не работает, если анализ сонара вызывается как отдельный этап сборки.Чтобы условно выполнить гидролокатор, вы можете использовать следующие 2 плагина:

  1. Плагин Conditional BuildStep - позволяет условно запускать гидролокатор- это позволяет вам вводить переменные, чтобы указать, как запускается сборка.
...