【问题标题】:Set environment variable from Jenkins Pipeline从 Jenkins Pipeline 设置环境变量
【发布时间】:2021-08-11 13:38:47
【问题描述】:

我想在一个阶段设置一个环境变量,并让它在所有后续阶段和步骤中可用。像这样的:

pipeline {
    stages {
        stage('One') {
            steps {
                sh 'export MY_NAME=$(whoami)'
            }
        }
        stage('Two') {
            steps {
                sh 'echo "I am ${MY_NAME}"'
            }
        }
        stage('Three') {
            steps {
                sh 'echo "I am ${MY_NAME}"'
            }
        }
    }
}

那些sh 步骤似乎是相互独立的,导出的var 甚至没有保留到下一步,更不用说Stage了。

我能想到的一种方法是将 var 写入 shell 文件,例如 echo "FOLDER_CONTENT=$(ls -lh)" 然后 source 下一步,但同样,我必须在每个下一步中进行采购,这是次优的。

有更好的方法吗?

【问题讨论】:

    标签: jenkins jenkins-pipeline jenkins-job-dsl


    【解决方案1】:

    终于可以这样实现了:

    pipeline {
        stages {
            stage('One') {
                steps {
                    script {
                        env.MY_NAME= sh (
                            script: 'whoami',
                            returnStdout: true
                        ).trim()
                    }
                }
            }
            stage('Two') {
                steps {
                    echo "I am ${MY_NAME}"
                }
            }
            stage('Three') {
                steps {
                    sh 'echo "I am ${MY_NAME}"'
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 2013-02-06
      • 2017-07-26
      • 2019-09-24
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多