Jenkins Job DSL - 无法从文件加载参数
Jenkins Job DSL - can't load parmeters from file
DSL 作业:
#!groovy
def file = readFileFromWorkspace('params.properties').trim()
job('app-adm') {
label("adm")
println("#" + file + "#")
parameters{
file
}
steps
{
shell(readFileFromWorkspace('script-adm.sh'))
}
}
job('app-tst-mt')
{
parameters
{
booleanParam('FLAG', true)
}
steps
{
shell(readFileFromWorkspace('script-tst-mt.sh'))
}
}
params.properties:
choiceParam('OPTION', ['option 1 (default)', 'option 2', 'option 3'])
我试过:
- 通过单个变量添加
x=<param> and parameteres { x }
- 不同的格式
没有任何工作,通过 println inside job,我可以清楚地看到有我想放入参数的字符串,但是这样做时它没有注册它,我没有得到任何参数。
好吧,答案非常明显,但如果有人有同样的问题,只需在 Jenkins 构建的 DSL 作业之前做一个 shell 作业。
在此 shell 作业中,您可以轻松修改工作区中的文件,因此将整个 dsl 作业(groovy 脚本)放在那里,只需将部分文本替换为 sed 或 envsubst。
DSL 作业:
#!groovy
def file = readFileFromWorkspace('params.properties').trim()
job('app-adm') {
label("adm")
println("#" + file + "#")
parameters{
file
}
steps
{
shell(readFileFromWorkspace('script-adm.sh'))
}
}
job('app-tst-mt')
{
parameters
{
booleanParam('FLAG', true)
}
steps
{
shell(readFileFromWorkspace('script-tst-mt.sh'))
}
}
params.properties:
choiceParam('OPTION', ['option 1 (default)', 'option 2', 'option 3'])
我试过:
- 通过单个变量添加
x=<param> and parameteres { x }
- 不同的格式
没有任何工作,通过 println inside job,我可以清楚地看到有我想放入参数的字符串,但是这样做时它没有注册它,我没有得到任何参数。
好吧,答案非常明显,但如果有人有同样的问题,只需在 Jenkins 构建的 DSL 作业之前做一个 shell 作业。 在此 shell 作业中,您可以轻松修改工作区中的文件,因此将整个 dsl 作业(groovy 脚本)放在那里,只需将部分文本替换为 sed 或 envsubst。