jenkins - 包含所有参数值列表或参数列表中的单个值的 Jenkinsfile
问题描述
我想使用带有所有参数值列表或参数列表中的单个值的 jenkinsfile 运行 jenkins 作业。
def deploy(env) {
step([$class: 'UCDeployPublisher',
siteName: siteName,
deploy: [
$class: 'com.urbancode.jenkins.plugins.ucdeploy.DeployHelper$DeployBlock',
deployApp: appName,
deployEnv: 'DEV',
deployVersions: "${compName}:${version}",
deployProc: simpleDeploy,
deployOnlyChanged: false,
deployReqProps: "ID=${params.ID}"
]])
CHOICES = [ 'id1', 'id2', 'id3', 'id4', 'id5' ]
PARAMETERS = CHOICES + "all"
parameters {
choice(
name: 'ID',
choices: PARAMETERS,
)
stage (DEV') {
steps {
script {
if (params.ID == "all"){
CHOICES.each {
echo "$it"
}
deploy('devl') ===> this will call my deploy function
}
else {
echo "$params.ID"
deploy('devl') ===> this will call my deploy function
}
}
}
}
我能够使用再见从下拉列表中选择每个值来运行作业。但我也想使用 ID 列表中的所有值运行作业。我尝试了所有但它没有采用所有值'id1','id2','id3','id4','id5'
解决方案
您需要在参数之外的 var 中定义选择,然后将其用作choices
例如
CHOICES = [ 'id1', 'id2', 'id3', 'id4', 'id5' ]
PARAMETERS = CHOICES + "all"
pipeline {
agent any
parameters {
choice(name: "ID", choices: PARAMETERS )
}
stages {
stage('Test') {
steps {
script {
if (params.ID == "all"){
CHOICES.each {
echo "$it"
}
}
else {
echo "$params.ID"
}
}
}
}
}
}
推荐阅读
- android - 如果 kikid 在 firebase 数据库中不包含用户 ID,该怎么办?
- c# - 如何将变量类型转换为另一种变量类型
- python - Pandas DataFrame 中的数据类型不变
- python - 如何获取用户的 Reddit 全名?
- python - 如何获取数组中变量的名称,以用作另一个语句的一部分?
- c++ - 使用 String c_str() 返回 char*
- sql - 平面到多级嵌套数据
- c++ - 有没有一种方法可以使用 2 位大小的类型而不是 int,只需插入新的类型名称而不是 int?
- r - R plot 火迹
- python - 使用 pandas matplotlib 在 x 轴上显示文本描述而不是数字