Seed job повторяет построение бесконечно каждую минуту из-за изменения 'job_template' - PullRequest
0 голосов
/ 18 апреля 2019

Я использую плагин jenkins-job-dsl.Создано начальное задание для запуска файла myJobs.jenkins_jobs, внутри которого я написал задание job_template и другое задание, которое using 'job_template'.Однако после создания начального задания он продолжает собираться снова и снова, пока я его не отключу.

В https://jenkinsci.github.io/job-dsl-plugin/#path/job-using Я вижу

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

Однако я не уверенчто я мог сделать, чтобы избавиться от этой постоянно перестраиваемой.

Мой myJobs.jenkins_jobs файл выглядит так:

job('job_template'){
}

job('railgun-db-importer-DSL') {
    using 'job_template'
}

РЕШЕНИЕ

ошибка заключалась в том, что в задании шаблона поле 'описание' обновлялось с датой после каждого запуска - это приводило к тому, что оно менялось при каждом запуске и повторялось при каждом запуске.После добавления отдельного «описания» в каждое задание и описания задания задания жесткого кода, чтобы оно не менялось при запуске, я избавился от вечных запусков.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы не должны поддерживать шаблонные задания по job-dsl.

Идея шаблонного задания заключается в том, что вы можете создавать новые задания через job-dsl на основе существующего задания , которое не поддерживается job-dsl (это задание шаблона).

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

В вашем примере каждый запуск DSL будет касаться задания шаблона; поскольку изменения в шаблонном задании снова вызовут DSL, это может привести к бесконечному циклу, который вы наблюдаете.

...