【发布时间】:2018-06-20 18:48:36
【问题描述】:
由于 Jenkins Pipeline 存在一个限制,即您无法在不挂起构建的情况下添加手动构建步骤(例如,请参见 thisstackoverflow 问题)我正在尝试使用 @987654323 组合 Jenkins Pipeline 和 Build Pipeline Plugin @。
我的计划是创建一个作业 DSL 脚本,它首先执行 Jenkins 管道(在 Jenkinsfile 中定义),然后创建一个部署到生产环境的下游作业(这是手动步骤)。我创建了这个 Job DSL 脚本作为测试:
pipelineJob("${REPO_NAME} jobs") {
logRotator(-1, 10)
def repo = "https://path-to-repo/${REPO_NAME}.git"
triggers {
scm('* * * * *')
}
description("Pipeline for $repo")
definition {
cpsScm {
scm {
git {
remote { url(repo) }
branches('master')
scriptPath('Jenkinsfile')
extensions { } // required as otherwise it may try to tag the repo, which you may not want
}
}
}
}
publishers {
buildPipelineTrigger("${REPO_NAME} deploy to prod") {
parameters {
currentBuild()
}
}
}
}
freeStyleJob("${REPO_NAME} deploy to prod") {
}
buildPipelineView("$REPO_NAME Build Pipeline") {
selectedJob("${REPO_NAME} jobs")
}
其中REPO_NAME 被定义为环境变量。 Jenkinsfile 看起来像这样:
node {
stage('build'){
echo "building"
}
stage('run tests'){
echo "running tests"
}
stage('package Docker'){
echo "packaging"
}
stage('Deploy to Test'){
echo "Deploying to Test"
}
}
问题在于selectedJob 指向"${REPO_NAME} jobs",这在构建管道插件视图中似乎不是作为“初始作业”的有效选项(您也不能手动选择它)。
有解决办法吗? IE。如何使用 Jenkins 流水线作为构建流水线插件的“初始作业”?
【问题讨论】:
标签: jenkins jenkins-job-dsl build-pipeline-plugin build-pipeline