我的Jenkins 2.19.4使用管道:声明式代理程序API 1.0.1。如果您无法定义变量来分配读取的属性,那么如何使用readProperties?
例如,要捕获SVN版本号,我目前以脚本样式使用以下代码捕获它:
echo "SVN_REVISION=\$(svn info ${svnUrl}/projects | \ grep Revision | \ sed 's/Revision: //g')" > svnrev.txt
def svnProp = readProperties file: 'svnrev.txt'
然后我可以使用:
${svnProp['SVN_REVISION']}
由于以声明式定义svnProp是不合法的,因此如何使用readProperties?
您可以使用标记script内的步骤steps来运行任意管道代码。
script
steps
所以符合以下内容:
pipeline { agent any stages { stage('A') { steps { writeFile file: 'props.txt', text: 'foo=bar' script { def props = readProperties file:'props.txt'; env['foo'] = props['foo']; } } } stage('B') { steps { echo env.foo } } } }
在这里,我正在使用env在阶段之间传播值,但是有可能做其他解决方案。