#jenkins #jenkins-pipeline #jenkins-groovy
#Дженкинс #дженкинс-конвейер #дженкинс-заводной
Вопрос:
у меня есть 2 функции, которые я хотел бы выполнять параллельно, каждое задание будет выполняться на подчиненном устройстве или там, где достаточно ресурсов. проблема в том, что я не хочу создавать конвейеры в графическом интерфейсе Jenkins, а затем из этого конвейера выполнять свою функцию. мне нравится иметь возможность создавать конвейер «на лету» в коде. это пример того, что у меня есть сейчас :
//downstream job
build job: "my_job_pipeline_1",
parameters: [string(name: 'PROJECT_NAME', value: "${PROJECT_NAME}"),
propagate: false,
wait: true
//downstream job
build job: "my_job_pipeline_2",
parameters: [string(name: 'PROJECT_NAME', value: "${PROJECT_NAME}"),
propagate: false,
wait: true
Это вызывается из моего основного конвейера, но для этого мне нужно создать 2 конвейера в графическом интерфейсе Jenkins
my_job_pipeline_2 и my_job_pipeline_1
могу ли я создать эти конвейеры программно?
Комментарии:
1. Я думаю, что плагин Jenkins Job DSL может вам здесь помочь. Вы можете вызвать плагин jobDSL с помощью pipeline job dsl, и ваш конвейер создаст задание на лету jenkinsci.github.io/job-dsl-plugin/#method /…
2. может быть .. является ли этот плагин стандартным? могу ли я видеть ход выполнения задания в журналах?
3. Это стандартный плагин и широко используется. Вы можете управлять / создавать / удалять задания с помощью jobDsl несколькими способами. Также есть этапы конвейера, которые будут работать в вашем случае. При вызове вы можете увидеть ссылки на созданное задание в консоли. Согласно вашему требованию, вы создаете задание, вызываете / создаете его, а затем снова удаляете задание.
4. просто для проверки, могу ли я выполнять задания параллельно?
5. я получаю java.lang. Ошибка NoSuchMethodError: среди шагов не найдено такого DSL-метода ‘pipelineJob’
Ответ №1:
Jenkins CLI позволяет создавать задания из терминала. Следуйте документации, чтобы настроить его. В разделе Управление Jenkins> Jenkins CLI вы можете найти доступные команды (включая «создать задание»)
Комментарии:
1. мне это нужно из кода groovy, а также иметь возможность просматривать прогресс в журнале