3

我正在开发声明性管道并希望使用文件参数来读取其内容,但它没有按预期工作

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??

4

3 回答 3

0

文件参数的正确参数是namedescription。所以应该是:

file(name:'list.txt', description:'contains list of projects to be build')

但是,从 2015 年开始就有一个关于文件参数不适用于管道的公开 jenkins 问题,所以我认为即使这样也不能解决您的问题。https://issues.jenkins-ci.org/browse/JENKINS-27413

于 2018-08-23T04:28:42.273 回答
0

以下语法有效

parameters{
        file name:'list.txt', description:'contains list of projects to be build'
   }

但是 fileLocation 参数仍然不能接受。

Jenkins2 Up & Running 书中提供了以下语法,但它不起作用

parameters{
        file(fileLocation:'list.txt', description:'contains list of projects to be build')
   }
于 2018-07-24T12:20:17.280 回答
0

在未解决的问题得到解决之前,我相信我们可能不得不坚持自由模式并在下游管道工作或利用需要的插件功能的同一工作中处理事情。

这是我的尝试,无论文件类型如何(是的,也支持二进制文件)类型:https ://i.stack.imgur.com/vH7mQ.png

${list.txt}在您的情况下将指向正确的文件..

于 2019-12-27T17:40:50.117 回答