如何将sh上下文的sh上下文中的变量导出到jenkins pipline作业的groovy上下文中?
管道代码:
node {
echo 'Hello World'
sh 'export VERSION="v$(date)"'
echo env.VERSION
}
outupt:
[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 ver。 2.34
更新 有可能将变量写入临时文件并稍后读取。这看起来完全像是对我的黑客攻击。在使用并行构建时,默认情况下它不是“线程安全的”,如果需要在一次运行中导出多个变量,则不会扩展。有没有正确的方法来做到这一点?
答案 0 :(得分:2)
我希望这会有所帮助。
node('master'){
stage('stage1'){
def commit = sh (returnStdout: true, script: '''echo hi
echo bye | grep -o "e"
date
echo lol''').split()
echo "${commit[-1]} "
}
}