Я установил Pipeline Plugin
, который раньше назывался Workflow Plugin
.
https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
Я хочу знать, как я могу использовать Job Dsl для создания и настройки задания типа Pipeline
Я установил Pipeline Plugin
, который раньше назывался Workflow Plugin
.
https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
Я хочу знать, как я могу использовать Job Dsl для создания и настройки задания типа Pipeline
Вы должны использовать pipelineJob
.
Пример:
pipelineJob('Pipeline') {
definition {
cps {
sandbox()
script("""
node {
stage('init') {
build 'Pipeline-init'
}
stage('build') {
build 'Pipeline-build'
}
}
""".stripIndent())
}
}
}
В Job DSL конвейер по-прежнему называется рабочим процессом, см. workflowJob.
В следующем выпуске DSL для задания будут содержаться некоторые улучшения для конвейеров, например. JENKINS-32678.
Я считаю, что этот вопрос задает вопрос о том, как использовать Job DSL для создания задания на конвейер, который ссылается на файл Jenkins для проекта, и не сочетает создание задания с подробными определениями шагов, как это было дано в ответах на Дата. Это имеет смысл: создание Jenkins и создание метаданных (описание, триггеры и т.д.) Могут принадлежать администраторам Jenkins, но команда разработчиков должна иметь контроль над тем, что на самом деле делает работа.
@meallhour, это ниже того, что вам нужно? (работает как Job DSL 1.64)
pipelineJob('DSL_Pipeline') {
def repo = 'https://github.com/path/to/your/repo.git'
triggers {
scm('H/5 * * * *')
}
description("Pipeline for $repo")
definition {
cpsScm {
scm {
git {
remote { url(repo) }
branches('master', '**/feature*')
scriptPath('misc/Jenkinsfile.v2')
extensions { } // required as otherwise it may try to tag the repo, which you may not want
}
// the single line below also works, but it
// only covers the 'master' branch and may not give you
// enough control.
// git(repo, 'master', { node -> node / 'extensions' << '' } )
}
}
}
}
Справьте работу DSL pipJob: https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob и взломайте его на http://job-dsl.herokuapp.com/, чтобы увидеть сгенерированную конфигурацию.
Этот пример работал у меня. Вот еще один пример, основанный на том, что сработало для меня:
pipelineJob('Your App Pipeline') {
def repo = 'https://github.com/user/yourApp.git'
def sshRepo = '[email protected]:user/yourApp.git'
description("Your App Pipeline")
keepDependencies(false)
properties{
githubProjectUrl (repo)
rebuild {
autoRebuild(false)
}
}
definition {
cpsScm {
scm {
git {
remote { url(sshRepo) }
branches('master')
scriptPath('Jenkinsfile')
extensions { } // required as otherwise it may try to tag the repo, which you may not want
}
}
}
}
Если вы сначала создаете конвейер через пользовательский интерфейс, вы можете использовать файл config.xml и документацию Jenkins https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob для создания ваш проект трубопровода.
Если вы используете репо git, добавьте файл под названием Jenkinsfile в корневой каталог вашего репо. Это должно содержать вашу работу dsl.