如何通过 activeChoiceReactiveParam 将 referencedParameter 发送到 readFileFromWorkspace
How to send a referencedParameter to a readFileFromWorkspace through activeChoiceReactiveParam
我正在尝试将 referencedParameter ('product') 发送到 Groovy 脚本 (services.groovy),该脚本由包含 activeChoiceReactiveParam 的命令 readFileFromWorkspace 触发。
预期结果:获取包含文件内容的下拉列表。
实际结果:作业在处理 DSL 脚本时失败
ERROR: (services.groovy, line 5) No such property: product for class: dsl.jobs.argocd.services
我尝试将产品引用参数定义为环境变量(并在 services.groovy 脚本中更新),但没有成功。
我试图在目录 /tmp/ 中重新创建 services.groovy 文件,但我在查找文件时遇到了问题。
products.groovy:
package dsl.jobs.argocd
return ['a','b','c']
services.groovy:
package dsl.jobs.argocd
return_value = []
if (product.equals("a")){
return_value = ['e']
}
if (product.equals("b")){
return_value = ['f']
}
if (product.equals("c")){
return_value = ['g']
}
return return_value;
管道:
pipelineJob("test") {
description("test")
keepDependencies(false)
parameters {
activeChoiceParam('product') {
description('What product would you like to update?')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/products.groovy'))
fallbackScript('return ["ERROR"]')
}
}
activeChoiceReactiveParam('service') {
description('Which services would you like to update?')
filterable()
choiceType('CHECKBOX')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/services.groovy'))
fallbackScript('return ["ERROR"]')
}
referencedParameter("product")
}
}
}
我是不是处理错了?在几个 Groovy 个文件中是否有不同的方法使用相同的参数?
嗯,看来上面的代码很完美,唯一的问题是 services.groovy 脚本的位置。
我将文件从 DSL 目录中取出(因为我不希望它被解析为 DSL 文件),将其引用到正确的位置,并且它运行完美。
更新管道:
pipelineJob("test") {
description("test")
keepDependencies(false)
parameters {
activeChoiceParam('product') {
description('What product would you like to update?')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/products.groovy'))
fallbackScript('return ["ERROR"]')
}
}
activeChoiceReactiveParam('service') {
description('Which services would you like to update?')
filterable()
choiceType('CHECKBOX')
groovyScript {
script(readFileFromWorkspace('services.groovy'))
fallbackScript('return ["ERROR"]')
}
referencedParameter("product")
}
}
}
我正在尝试将 referencedParameter ('product') 发送到 Groovy 脚本 (services.groovy),该脚本由包含 activeChoiceReactiveParam 的命令 readFileFromWorkspace 触发。
预期结果:获取包含文件内容的下拉列表。
实际结果:作业在处理 DSL 脚本时失败
ERROR: (services.groovy, line 5) No such property: product for class: dsl.jobs.argocd.services
我尝试将产品引用参数定义为环境变量(并在 services.groovy 脚本中更新),但没有成功。
我试图在目录 /tmp/ 中重新创建 services.groovy 文件,但我在查找文件时遇到了问题。
products.groovy:
package dsl.jobs.argocd
return ['a','b','c']
services.groovy:
package dsl.jobs.argocd
return_value = []
if (product.equals("a")){
return_value = ['e']
}
if (product.equals("b")){
return_value = ['f']
}
if (product.equals("c")){
return_value = ['g']
}
return return_value;
管道:
pipelineJob("test") {
description("test")
keepDependencies(false)
parameters {
activeChoiceParam('product') {
description('What product would you like to update?')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/products.groovy'))
fallbackScript('return ["ERROR"]')
}
}
activeChoiceReactiveParam('service') {
description('Which services would you like to update?')
filterable()
choiceType('CHECKBOX')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/services.groovy'))
fallbackScript('return ["ERROR"]')
}
referencedParameter("product")
}
}
}
我是不是处理错了?在几个 Groovy 个文件中是否有不同的方法使用相同的参数?
嗯,看来上面的代码很完美,唯一的问题是 services.groovy 脚本的位置。
我将文件从 DSL 目录中取出(因为我不希望它被解析为 DSL 文件),将其引用到正确的位置,并且它运行完美。
更新管道:
pipelineJob("test") {
description("test")
keepDependencies(false)
parameters {
activeChoiceParam('product') {
description('What product would you like to update?')
filterable()
choiceType('SINGLE_SELECT')
groovyScript {
script(readFileFromWorkspace('dsl/jobs/argocd/products.groovy'))
fallbackScript('return ["ERROR"]')
}
}
activeChoiceReactiveParam('service') {
description('Which services would you like to update?')
filterable()
choiceType('CHECKBOX')
groovyScript {
script(readFileFromWorkspace('services.groovy'))
fallbackScript('return ["ERROR"]')
}
referencedParameter("product")
}
}
}