Как построить график в Дженкинс?

Как мне спланировать сборку Jenkins так, чтобы она могла собираться только в определенные часы каждый день?

Например, чтобы начать в 4 часа дня

0 16 1-7 * *

Я понимаю это как: 0 минут, в 4 часа вечера с понедельника по воскресенье каждый месяц, однако он строится каждую минуту:(

Буду благодарен за любые советы. Спасибо!

8 ответов

Решение

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

Согласно собственной помощи Дженкинса (кнопка "?") Для задания расписания, указано 5 полей:

Это поле соответствует синтаксису cron (с небольшими отличиями). В частности, каждая строка состоит из 5 полей, разделенных табуляцией или пробелом: МИНУТА ЧАС DOM МЕСЯЦ DOW

Я только попытался получить работу, чтобы начать работу в 16:42 (мое приблизительное местное время), и это работало со следующим, хотя это заняло приблизительно 30 дополнительных секунд:

42 16 * * *

Если вы хотите несколько раз, я думаю, что должно работать следующее:

0 16,18,20,22 * * *

на 4, 6, 8 и 10 часов вечера каждый день.

В конфигурации задания можно определить различные триггеры сборки. При периодической сборке вы можете планировать сборку, определяя дату или день недели и время выполнения сборки.

Формат выглядит следующим образом:

МИНУТА (0-59), ЧАС (0-23), ДЕНЬ (1-31), МЕСЯЦ (1-12), ДЕНЬ НЕДЕЛИ (0-6)

Буква H, представляющая слово Hash, может быть вставлена ​​вместо любого из значений, она вычислит параметр на основе хеш-кода имени вашего проекта, так что если вы собираете несколько проектов на своем компьютере сборки одновременно время, скажем, полночь каждый день, они не все начинают выполнение сборки одновременно, каждый проект начинает выполнение в разные минуты в зависимости от своего хеш-кода. Вы также можете указать значение между числами, т.е. H(0,30) вернет хеш-код проекта, где возможные хеши 0-30

Примеры:

Начните сборку ежедневно с 08:30 утра, с понедельника по пятницу:

  • 30 08 * * 1-5

в будние дни ежедневно строят два раза в день, в обеденное время 12:00 и в полночь 00:00, с воскресенья по четверг:

  • 00 0,12 * * 0-4

Начните сборку ежедневно ближе к вечеру с 16:00 до 16:59 или с 16:00 до 16: 59 в зависимости от хэша проекта:

  • H 16 * * 1-5

начать сборку в полночь:

  • @midnight

или начните строить в полночь каждую субботу:

  • 59 23 * * 6

каждое первое число каждого месяца с 2:00 до 02:30:

  • H (0,30) 02 01 * *

больше о выражениях CRON

Этот пример - каждый день, около 9 утра и 5 вечера. (отредактировано по комментариям).

H 9,17 * * * 

Шаги по расписанию заданий в Jenkins:

  1. нажмите "Настроить" требования к вакансии
  2. прокрутите вниз до " Триггеры сборки " - подзаголовок
  3. Периодически нажимайте на флажок " Сборка"
  4. Добавьте расписание в поле Расписание, например, @midnight

Примечание: под полем расписания можно увидеть последний и следующий запуск по дате и времени.

Jenkins также поддерживает предопределенные псевдонимы для планирования сборки:

@hourly, @daily, @weekly, @monthly, @midnight

@hourly -> Строить каждый час в начале часа -> 0 * * * *

@daily, @midnight -> Строить каждый день в полночь -> 0 0 * * *

@weekly -> Строить каждую неделю в полночь в воскресенье утром -> 0 0 * * 0

@monthly -> Строить каждый месяц в полночь первого числа месяца -> 0 0 1 * *

Для построения один раз в день, скажем, с 4 вечера до 6 вечера вы можете использовать

ЧЧ (15-17) * * *

H H(5-21)/2 * * 1-5

MON-FRI build every 2 hour between

Это выглядит как выражение cron. Обратите внимание, что ваш пример строится только с первого по седьмое каждого месяца в 16:00. Вероятно, у вас есть какая-то другая ошибка, или Jenkins использует нестандартные выражения CRON.

Дженкинс использует Cron Expressions.

Вы можете просто запланировать почасовые сборки, просто набрав:

@hourly

В Дженкинс у нас есть такой формат:

Минута (0-59) Час (0-23) День (1-7) Месяц (1-12) День недели

Попробуйте это на 16:00 с понедельника по воскресенье.

0 16 * * *

Вы можете проверить сообщение с описанием, отображаемое при настройке в разделе "Периодическая сборка" в Jenkins. (См. Снимок экрана, приведенный ниже)

"Последний раз запускался в воскресенье, 17 ноября 2019 г., 16:00:05 по IST; следующий запуск - в понедельник, 18 ноября 2019 г., 16:00:05 по IST".

Скриншот

В секунды в то время " в понедельник, 18 ноября, 2019 4:00:05 PM IST" относится к нашей текущей системе секунд.

Другие вопросы по тегам