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