如何将文本附加到Jenkinsfile
中的文件,并注入Jenkins BUILD_ID
我希望看到:
version := "1.0.25"
其中25是BUILD_ID
下面是我的尝试:
import hudson.EnvVars
node {
stage('versioning'){
echo 'retrieve build version'
sh 'echo version := 1.0.${env.BUILD_ID} >> build.sbt'
}
}
错误:
版本:= 1.0. ${环境构建ID}:不良代换
请注意,该文件位于当前目录中
3条答案
按热度按时间rseugnpd1#
writeFile中内置的管道在这里也非常有用,但是需要一个读+写过程来附加到文件。
t5zmwmid2#
env.BUILD_ID
是groovy变量,而不是shell变量。由于您使用了单引号('
),groovy将 * 不 * 替换字符串中的变量,并且shell不知道${env.BUILD_ID}
。您需要使用双引号"
并让groovy进行替换或者使用shell知道的变量
因为你需要用双引号括起来的版本,你需要这样的东西:
kq0g1dla3#
我已经使用了dirty little wrapper函数来实现Stefan Crain上面的答案:
我真的不喜欢它,但它确实有窍门,它通过斜杠字符串绕过了转义引号,例如: