一尘不染

如何将文本追加到jenkinsfile中的文件

jenkins

如何在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。$ {env.BUILD_ID}:替换错误

注意文件在当前目录中


阅读 569

收藏
2020-07-25

共1个答案

一尘不染

env.BUILD_ID是一个groovy变量,而不是一个shell变量。由于您使用了单引号('),因此groovy 不会
替换字符串中的变量,并且Shell也不知道${env.BUILD_ID}。您需要使用双引号"并让groovy进行替换

sh "echo version := 1.0.${env.BUILD_ID} >> build.sbt"

或使用外壳程序知道的变量

sh 'echo version := 1.0.$BUILD_ID >> build.sbt'

并且由于您需要用双引号引起来的版本,因此需要这样的内容:

sh "echo version := \\\"1.0.${env.BUILD_ID}\\\" >> build.sbt"
2020-07-25