我有一个jenkinsfile,可以根据参数构建并部署到不同的环境 例如
parameters {
string(defaultValue: "integration", description: '', name: 'TARGET_ENV')
}
触发作业时,当前会询问用户要部署到的环境。我想为每个环境设置一个作业项目,而不要求用户输入环境。
实现此目标的最佳方法是什么?
答案 0 :(得分:1)
您可以为每个环境创建一个工作流(脚本化)管道作业,然后使用set参数调用您的实际作业:
工作流作业“ deployEnvDev”的管道脚本:
node {
stage("Deploy Environment Dev") {
build job: 'here/the/path/to/your/deploy/job',
wait: true,
parameters: [
string(name: 'TARGET_ENV', value: 'dev' )
]
}
}
工作流作业'deployEnvProd'的管道脚本:
node {
stage("Deploy Environment Prod") {
build job: 'here/the/path/to/your/deploy/job',
wait: true,
parameters: [
string(name: 'TARGET_ENV', value: 'prod' )
]
}
}
deploy-job的详细信息页面上显示了“ deploy-job”的路径“ here / the / path / to / your / deploy / job”:
此设置使您可以有不同的作业来启动特定环境的部署,而无需要求用户手动设置环境。部署本身与过去的工作相同。因此,您的工作就是进行修改或维护。
答案 1 :(得分:0)