如何在解析的Jenkinsfile变量

时间:2017-05-23 20:17:01

标签: bash jenkins jenkins-pipeline

我想在Jenkins文件的各个阶段之间传递变量,并且正如人们所建议的那样,通过写入文件然后解析它。

stage('1') {
  steps {
    sh "echo value > var.txt"
    script {
      VALUE = readFile('var.txt')
    }
  }
}

stage('2') {
  steps {
    sh "echo ${VALUE} && echo 'ok'"
  }
}

但是,我在${VALUE}结尾处获得某种形式的新行字符,这意味着我正在尝试执行2行,而&&正在使该阶段成为barf。我试过通过tr -d '\r\n',但它似乎没有做任何事情。

2 个答案:

答案 0 :(得分:0)

我的Jenkins文件也遇到了这个问题,该文件是一个时髦的脚本,这就是为什么我摆脱了要使用的值结尾处的EOL / CR字符的原因:

VALUE = readFile('var.txt').trim()

答案 1 :(得分:0)

除了执行 trim() 之外,您还可以通过为其指定 echo 参数来使 -n 不在该值后添加新行。所以改用sh "echo -n value > var.txt"