Jenkins build job выполнение заданий параллельно как создать программно без создания конвейера в графическом интерфейсе jenkins

#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, а также иметь возможность просматривать прогресс в журнале