在不同代理程序的各个阶段之间传递Jenkins env变量

时间:2020-11-02 17:36:47

标签: jenkins jenkins-pipeline

我已经看过这个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             
            }
        }

0 个答案:

没有答案