Начать работу Дженкинс сразу после создания по заданию
Я использую плагин Jenkins DSL для автоматического создания заданий сборки для всех веток git-проекта. Плагин DSL запускается веб-хуками, поэтому он запускается сразу после создания новой ветви. Сгенерированные задания по сборке для каждой ветви также настраиваются для запуска веб-хуками.
Проблема с текущей настройкой заключается в том, что сборка будет выполняться только после второй фиксации. Первый коммит активирует подключаемый модуль Jenkins DSL для создания соответствующего задания Jenkins, а второй коммит запускает только что созданное задание.
Есть ли способ запустить задание Jenkins сразу после того, как оно было создано плагином DSL? Единственное, что я могу сейчас придумать, - это добавить дополнительное планирование сборки, но я бы предпочел использовать веб-хуки только для предотвращения ненужного опроса.
1 ответ
Ты можешь использовать queue
Команда DSL для планирования сборки, см. https://github.com/jenkinsci/job-dsl-plugin/wiki/Job-DSL-Commands.
Чтобы поставить работу в очередь только в том случае, если она новая, необходимо использовать API Jenkins, чтобы проверить, существует ли уже работа.
if (!jenkins.model.Jenkins.instance.getItemByFullName('my-job')) {
queue('my-job')
}