一尘不染

如何在Jenkinsfile中设置和引用变量

jenkins

对于多分支项目,我有一个声明性管道脚本,在该脚本中,我想读取文本文件并将结果存储为字符串变量,以供管道的后续步骤访问。使用摘要生成器,我尝试执行以下操作:

filename = readFile 'output.txt'

为此,这filename将是我的字符串。

在Jenkins控制台输出中出现错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 30: Expected a step @ line 30, column 5.
            filename = readFile 'output.txt'

我是否需要使用一个withEnv步骤来将readFileJenkins环境变量的输出设置为?如果是这样,怎么办?

谢谢


阅读 2007

收藏
2020-07-25

共1个答案

一尘不染

该错误是由于只允许您在steps指令中使用管道步骤。我知道一种解决方法是使用scriptstep并将任意管道脚本包装在其中,并将结果保存在环境变量中,以便以后使用。

因此,在您的情况下:

pipeline {
    agent any
    stages {
        stage("foo") {
            steps {
                script {
                    env.FILENAME = readFile 'output.txt'
                }
                echo "${env.FILENAME}"
            }
        }
    }
}
2020-07-25