Jenkins 声明性管道中的文件参数
我正在开发声明性管道,并希望使用file参数读取其内容,但它并没有按预期工作Jenkins 声明性管道中的文件参数,jenkins,jenkins-pipeline,jenkins-declarative-pipeline,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,我正在开发声明性管道,并希望使用file参数读取其内容,但它并没有按预期工作 parameters{ file(fileLocation:'list.txt', description:'contains list of projects to be build') } 我得到以下错误 org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript
parameters{
file(fileLocation:'list.txt', description:'contains list of projects to be build')
}
我得到以下错误
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 12: Invalid parameter "fileLocation", did you mean "description"? @ line 12, column 14.
file(fileLocation:'release-list.txt', description:'contains list of projects to be build')
下面是为基本步骤插件提到的另一个选项
readFile: Read file from workspace
Reads a file from a relative path (with root in current directory, usually workspace) and returns its content as a plain string.
file
Relative ( /-separated) path to file within a workspace to read.
Type: String
encoding (optional)
Type: String
它是按脚本的步骤工作的
def myfile = readFile('list.txt')
echo "${myfile}"
但是如何在声明性脚本中直接使用它,就像我们使用其他基本步骤一样,比如dir???下面的语法正在起作用
parameters{
file name:'list.txt', description:'contains list of projects to be build'
}
但fileLocation参数仍然是不可接受的
Jenkins2 Up&Running book中提供了以下语法,但它不起作用
parameters{
file(fileLocation:'list.txt', description:'contains list of projects to be build')
}
file参数的正确参数是
name
和description
。因此,它应该是:
file(name:'list.txt', description:'contains list of projects to be build')
然而,2015年就有一个公开的jenkins问题,关于文件参数不适用于管道,所以我认为即使这样也不能解决您的问题 在未解决的问题得到解决之前,我相信我们可能必须坚持自由式模式&在下游管道作业中或在同一作业中利用需要的插件功能处理事情 下面是我的一个尝试,它不考虑文件类型(是也支持二进制文件):
${list.txt}
将指向您案例中的正确文件