提问人:Pawel 提问时间:11/7/2023 最后编辑:Pawel 更新时间:11/8/2023 访问量:102
Jenkins 流水线如何使用变量中的参数运行构建作业
Jenkins pipeline how to run build job with parameters from variables
问:
在 jenkins 管道中,我想使用变量 job_path 和 job_params 运行“构建作业”。 但更多时候job_path = "long/path/to/different/jobs"
job_params = [string(name: 'app_one', value: '4.8.6')]
job_params = "[string(name: 'app_one', value: '4.8.6'), string(name: 'app_three ', value: '1.2.4'), string(name: 'app_ten', value: '2.7.1')]"
pipeline {
stages {
stage('Deployment') {
steps {
script {
build job: "${job_path}", parameters: job_params
}
}
}
}
}
路径工作完美,但 param 不行。 我收到一个错误,说需要一个列表并提供了一个字符串。
java.lang.ClassCastException: class org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.setParameters() expects java.util.List<hudson.model.ParameterValue> but received class java.lang.String
第二个:
Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: xyz
Caused: java.lang.IllegalArgumentException: Could not instantiate {job=long/path/to/different/jobs, parameters=[string(name: 'app_one', value: '4.8.6')]} for org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep
我尝试将这个参数变量转换为列表, 请告诉我运行作业的最佳方法,按路径指出,参数数量随机。
答:
你声明字符串:
job_params = "[string(name: 'app_one', value: '4.8.6'), string(name: 'app_three ', value: '1.2.4'), string(name: 'app_ten', value: '2.7.1')]"
java.lang.ClassCastException: class org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.setParameters() expects java.util.List<hudson.model.ParameterValue> but received class java.lang.String
参数操作使用列表def List job_params = [ string(name: 'app_one', value: '4.8.6'), string(name: 'app_three ', value: '1.2.4'), string(name: 'app_ten', value: '2.7.1') ]
评论
list_param
list_param
list_param = [string(name: 'app_one', value: '4.8.6')]
1/
job_params
2/
build job: "${job_path}", parameters: job_params