Как запланировать сборку в Jenkins?

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

Например, чтобы начать в 16:00.

0 16 1-7 * *

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

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


person deadfish    schedule 09.08.2011    source источник
comment
Где на самом деле ввести это, чтобы запланировать работу?   -  person brodie31k    schedule 30.10.2012
comment
В конфиге вашего проекта в разделе Триггеры сборки периодически выбирайте сборку   -  person Youssef Boudaya    schedule 18.05.2021


Ответы (10)


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

Согласно собственной справке Дженкинса (кнопка «?») Для задачи расписания указано 5 полей:

Это поле соответствует синтаксису cron (с небольшими отличиями). В частности, каждая строка состоит из 5 полей, разделенных TAB или пробелом: MINUTE HOUR DOM MONTH DOW

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

42 16 * * *

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

0 16,18,20,22 * * *

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

person Zach Young    schedule 09.08.2011
comment
Верно, слишком много звезд. Мое плохое под вопросом. Исправлю свою тему. - person deadfish; 10.08.2011
comment
Привет, Михал! У вас все еще проблемы с расписанием? Вы приняли мой ответ, но ваш комментарий касался только исправления вопроса, который, как я вижу, вы уже сделали. Спасибо. - person Zach Young; 10.08.2011

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

Это следующий формат:

МИНУТА (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

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

  • @полночь

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

  • 59 23 * * 6

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

  • H(0-30) 02 01 * *

подробнее о выражениях CRON

person Merav Kochavi    schedule 10.06.2015
comment
Думаю, начинать строить ежедневно ближе к вечеру между 16:00. - 16:59 или 16:00 -16: 59 в зависимости от хэша проекта: должно быть H 16 * * * (не H 16 * * 1-5) - person user836846; 03.04.2016
comment
Спасибо, но вы уверены, что 1-6 с понедельника по пятницу? Разве это не 1-5? и Т. Д. - person vikingsteve; 13.10.2016
comment
Если 1-6 - пн - сб, то 0-5 - вс - пт. +1 за столько полезных примеров. - person inaitgaJ; 28.10.2016
comment
Поправка: H (0,30) 02 01 * * должно быть H (0-30) 02 01 * * - person Sander de Jong; 28.02.2019

Этот пример повседневный, один раз около 9 утра и один раз около 17 часов. (отредактировано в комментариях).

H 9,17 * * * 
person captainhero70    schedule 08.04.2014
comment
Не совсем. Он будет работать один раз с 9:00 до 9:59 и еще раз с 17:00 до 17:59. - person egrunin; 30.05.2014
comment
Чтобы быть более точным: это задание будет запускаться один раз с 9:00 до 9:59 и начнется один раз с 17:00 до 17:59. Работа не будет прекращена, если она займет больше времени. - person Stephan Schielke; 12.09.2014
comment
Обратите внимание, что будет выполняться один раз между 09:00 и 0959: H означает хэш - это хэш, основанный на проекте, поэтому этот проект ВСЕГДА будет запускаться в одну и ту же минуту в 9-м и 17-м часах. Если алгоритм хеширования генерирует номер 16 для вашего проекта, то работа вашего проекта всегда будет начинаться с 0916 и 1716. - person DrUseful; 15.12.2014

Чтобы строить раз в день, скажем, с 16:00 до 18:00, вы можете использовать

H H(15-17) * * *

person primeFactor    schedule 20.08.2014

Действия по созданию расписания заданий в 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 * *

person Gavriel Cohen    schedule 15.01.2020

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

ПН-ПТ строить каждые 2 часа между

person user176867    schedule 02.12.2016

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

person Yann Ramin    schedule 09.08.2011

В Jenkins у нас есть такой формат:

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

person LivCool    schedule 09.06.2016

Дженкинс использует выражения Cron.

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

person Marios Michailidis    schedule 12.02.2016

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

0 16 * * *

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

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

Снимок экрана

введите описание изображения здесь

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

person Jayakumari Arumugham    schedule 18.11.2019