如何添加构建选择器作为参数?
How to add a build selector as a parameter?
我有两份工作:
- 构建作业
- 部署作业
我将第一个作业中生成的工件 (jars) 复制到第二个作业中,并将它们部署到环境中。
properties([
parameters(
[
string(
name: 'buildnumber',
description: 'Buildnumber to deploy'
),
choice(
name: 'env',
choices: ['qa', 'stage', 'prod'],
description: 'Environment where the app should be deployed'
)
]
)
])
node{
stage('Copy artifacts'){
copyArtifacts(projectName: 'my-demo-build-job/master', selector: specific(params.buildnumber))
}
stage('Deploy'){
sh 'Deploying to the specified environment '
}
}
有了这个,我必须手动检查 latest/successful 构建并将其作为参数。有没有一种方法可以让我们获得一个下拉列表,其中所有成功的构建都按构建编号排序,作为其他作业的选择器?
您可以使用 Extended Choice Parameter Plugin 在 groovy 脚本的帮助下实现您想要的。
您需要定义 Single Select 类型的扩展选择参数,作为值的来源选择 Groovy Script ,并作为 groovy 脚本使用如下内容:
def job = jenkins.model.Jenkins.instance.getItemByFullName('my-demo-build-job/master')
return job.builds.findResults{
it.result == hudson.model.Result.SUCCESS ? it.getNumber().toInteger() : null
}
此脚本将遍历已配置作业的所有构建并仅过滤出成功的构建 - 将作为参数的 select-list 选项返回。
管道中的配置如下所示:
properties([
parameters([
extendedChoice(name: 'buildnumber', type: 'PT_SINGLE_SELECT', description: 'Buildnumber to deploy', visibleItemCount: 10, groovyScript:
'''def job = jenkins.model.Jenkins.instance.getItemByFullName('my-demo-build-job/master')
return job.builds.findResults { it.result == hudson.model.Result.SUCCESS ? it.getNumber().toInteger() : null }''',
choice(name: 'env', choices: ['qa', 'stage', 'prod'], description: 'Environment where the app should be deployed'),
])
])
我有两份工作:
- 构建作业
- 部署作业
我将第一个作业中生成的工件 (jars) 复制到第二个作业中,并将它们部署到环境中。
properties([
parameters(
[
string(
name: 'buildnumber',
description: 'Buildnumber to deploy'
),
choice(
name: 'env',
choices: ['qa', 'stage', 'prod'],
description: 'Environment where the app should be deployed'
)
]
)
])
node{
stage('Copy artifacts'){
copyArtifacts(projectName: 'my-demo-build-job/master', selector: specific(params.buildnumber))
}
stage('Deploy'){
sh 'Deploying to the specified environment '
}
}
有了这个,我必须手动检查 latest/successful 构建并将其作为参数。有没有一种方法可以让我们获得一个下拉列表,其中所有成功的构建都按构建编号排序,作为其他作业的选择器?
您可以使用 Extended Choice Parameter Plugin 在 groovy 脚本的帮助下实现您想要的。
您需要定义 Single Select 类型的扩展选择参数,作为值的来源选择 Groovy Script ,并作为 groovy 脚本使用如下内容:
def job = jenkins.model.Jenkins.instance.getItemByFullName('my-demo-build-job/master')
return job.builds.findResults{
it.result == hudson.model.Result.SUCCESS ? it.getNumber().toInteger() : null
}
此脚本将遍历已配置作业的所有构建并仅过滤出成功的构建 - 将作为参数的 select-list 选项返回。
管道中的配置如下所示:
properties([
parameters([
extendedChoice(name: 'buildnumber', type: 'PT_SINGLE_SELECT', description: 'Buildnumber to deploy', visibleItemCount: 10, groovyScript:
'''def job = jenkins.model.Jenkins.instance.getItemByFullName('my-demo-build-job/master')
return job.builds.findResults { it.result == hudson.model.Result.SUCCESS ? it.getNumber().toInteger() : null }''',
choice(name: 'env', choices: ['qa', 'stage', 'prod'], description: 'Environment where the app should be deployed'),
])
])