我已经看过这个Pass Artifact or String to upstream job in Jenkins Pipeline和这个Pass variables between Jenkins stages和这个How do I pass variables between stages in a declarative Jenkins pipeline?,但是这些问题似乎都没有解决我的特定问题。
基本上,我有一个由多个阶段组成的管道,每个阶段都在自己的代理中运行。
在第一阶段,我运行一个shell脚本。在此生成两个变量。我想在下一阶段使用这些变量。到目前为止,我所看到的方法似乎仅在在同一代理中传递变量时有效。
pipeline {
stages {
stage("stage 1") {
agent {
docker {
image 'my_image:latest'
}
}
steps {
sh ("""
export VAR1=foo
export VAR2=bar
""")
}
}
stage("stage 2") {
agent {
docker {
image 'my_other_image:latest'
}
}
steps {
sh ("echo "$VAR1 $VAR2")
//expecting to see "foo bar" printed here
}
}