【问题标题】:How to export a variable from sh to groovy in a jenkins pipeline?如何在jenkins管道中将变量从sh导出到groovy?
【发布时间】:2017-04-16 01:01:35
【问题描述】:

如何将变量从 sh 上下文的 sh 上下文导出到 jenkins 管道作业的 groovy 上下文?

管道代码:

node {
   echo 'Hello World'
   sh 'export VERSION="v$(date)"'
   echo env.VERSION
}

输出:

[Pipeline] sh
[test-pipeline] Running shell script
++ date
+ export 'VERSION=vThu Dec  1 12:14:40 CET 2016'
+ VERSION='vThu Dec  1 12:14:40 CET 2016'
[Pipeline] echo`enter code here`
null

我正在使用 Jenkins 版本。 2.34

更新: 可以将变量写入临时文件并稍后读取。这对我来说完全像一个黑客。在使用并行构建时,默认情况下它不是“线程安全的”,并且如果您需要在一次运行中导出多个变量,则它不会扩展。有没有合适的方法来做到这一点?

【问题讨论】:

标签: jenkins groovy sh


【解决方案1】:

我希望这会有所帮助。

node('master'){
    stage('stage1'){
    def commit = sh (returnStdout: true, script: '''echo hi
    echo bye | grep -o "e"
    date
    echo lol''').split()



    echo "${commit[-1]} "

    }
}

【讨论】:

  • 好答案。但是上帝我讨厌这种语法。是否需要在(script:) 中传递脚本字符串,或者这可以只是sh """<script>""" 吗?
猜你喜欢
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 2019-09-24
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多