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

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步骤将readFile的输出设置为Jenkins环境变量?如果是这样,怎么办?

谢谢

最佳答案

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

因此,在您的情况下:

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

关于jenkins - 如何在Jenkinsfile中设置和引用变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42540148/

10-14 01:16