我有一个包含管道的jenkins文件。我已经设置了一个可选的参数来传递,如果没有设置参数,也会设置一个默认值:
parameters {
string(name: 'MY_VAR', defaultValue: 'foo', description: 'my var that can be optional')
}
在这些阶段的中间,我想用一些其他值覆盖(仅在某些时候,并且仅在传递了一些其他特定参数的情况下)这个“my\u var”。
到目前为止,这是可行的:
stage('Build') {
steps {
env.MY_VAR="foobar"
}
}
但是我想从文件中读取这个变量,所以我想做如下操作:
stage('Build') {
steps {
// Of course none of following work
env.MY_VAR=$(cat /tmp/my-file)
//or
sh "new_var=$(cat /tmp/my-file)"
env.MY_VAR=$new_var
}
}
我怎样才能做到这一点?
2条答案
按热度按时间ego6inou1#
实际上,您可以在script语句中使用任何groovy库。例如,可以使用file类读取文本文件:
sqougxex2#
我想你需要使用脚本块。在脚本块中定义变量将允许您在整个管道中使用它们,而不仅仅是在单独的阶段。