2

我正在尝试为几个 Jenkins Jobs 建立一些动态构建参数。我已经找到了Dynamic Parameter Plug-inExtensible Choice Parameter plugin。两者都能够使用 groovy 脚本进行输入。

现在是棘手的部分。我想读取一个 project.property 文件(当前版本)并将其用作输入的默认值。问题是要访问工作区中的文件。只有“可扩展选择参数”插件可以选择为当前项目(AbstractProject)启用便利变量,我可以在其中获取工作区的 FilePath。请参阅以下脚本:

import hudson.FilePath;

propertiesFile = new FilePath(project.getWorkspace(),"project.properties");
props = new Properties();
props.load(propertiesFile.read());
return [props["version"]]

现在这个插件只向用户提供了一个列表(即使我可以让它可编辑),主要的缺点是,我需要将此脚本复制并粘贴到我想使用它的每个作业中(更不用说为所有这些更改某些内容)工作也会很痛苦)。

动态参数插件有一个很好的脚本集成,但我不知道如何获取当前项目。这些示例没有显示从实际工作区加载参数的任何内容,而只是从外部文件加载参数。

任何人都知道如何解决这些问题中的任何一个?

4

1 回答 1

3

我发现使用动态参数插件而不是可扩展或扩展参数允许运行 groovy 脚本:

  • 在主人身上,或
  • 在作业运行的从属设备上(前提是从属设备已启动)。

这个选择是通过远程脚本复选框进行的:来自插件文档:“如果选中了“远程脚本”复选框,那么脚本将在开始构建的从站上执行。

例如,我已成功列出工作区中的文件,并使用此脚本(mytest作为我的工作名称)与它们一起制作参数菜单:

def dir = "ls -1 workspace/mytest".execute().text
return dir.readLines()

注意:与其他参数插件期望用逗号分隔的 csv 文本(扩展参数插件)相反,这个需要一个 groovy 列表对象,因此调用readLines().

于 2015-04-16T15:45:18.423 回答