由于Jenkins Pipeline的限制,你不能在不挂起构建的情况下添加手动构建步骤(参见例如this stackoverflow问题)我正在试验Jenkins Pipeline和Build Pipeline Plugin的组合使用Job DSL plugin。
我的计划是创建一个Job 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"
,它似乎不是构建管道插件视图中的“初始作业”的有效选项(您无法手动选择它) )。
有解决方法吗?即如何使用Jenkins Pipeline作为Build Pipeline插件的“初始作业”?