如何用Jenkins管道写出环境变量

如何用Jenkins管道写出环境变量,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,如何在Jenkins管道中使用writeFile写出环境变量? 这似乎是一项很容易的任务,但我找不到任何关于如何让它工作的文档 我尝试了$VAR,${VAR}和${env.VAR},在声明性管道中(使用writeFile的脚本块)没有任何效果…?,它将如下所示: pipeline { agent any environment { SENTENCE = 'Hello World\n' } stages { stage('Writ

如何在Jenkins管道中使用
writeFile
写出环境变量? 这似乎是一项很容易的任务,但我找不到任何关于如何让它工作的文档

我尝试了
$VAR
${VAR}
${env.VAR}
,在声明性管道中(使用
writeFile
的脚本块)没有任何效果…?

,它将如下所示:

pipeline {
    agent any

    environment {
        SENTENCE = 'Hello World\n'
    }

    stages {
        stage('Write') {
            steps {
                script {
                    writeFile file: 'script.txt', text: env.SENTENCE
                }
            }
        }
        
        stage('Verify') {
            steps {
                sh 'cat script.txt'
            }
        }
    }
}
输出:

...
[Pipeline] { (Verify)
[Pipeline] sh
[test] Running shell script
+ cat script.txt
Hello World
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
如果要避免使用groovy,这也可以:

writeFile file: 'script.txt', text: "${SENTENCE}"
要将环境变量与文本组合,可以执行以下操作:

...
environment {
    SENTENCE = 'Hello World'
}
...

writeFile file: 'script.txt', text: env.SENTENCE + ' is my newest sentence!\n'

如何将变量与文本相结合?@FlorianPeschka更新了答案我不确定我们是否应该在这里讨论,但我现在在这一行得到一个Nullpointer异常:@FlorianPeschka您可以共享您的管道(或失败的部分)吗+您正在使用最新版本的插件?仅当您使用GIT插件时,才会设置GIT_COMMIT的env var。但对于管道来说,这种行为有点不同。您确实需要定义使用,如下所述: