2

我目前正在使用带有 svn 的 jenkins,并且希望根据我在服务器上生成的 shell 脚本生成特定的标签。该脚本将每五分钟导出我想要构建的标签名称列表;我希望 jenkins 收到这个列表,然后在列表中循环,构建每个标签。

我似乎只能获得参数化构建选项来构建单个修订版,并且看不到如何处理构建列表。我应该使用预构建 shell 选项吗?如果是这样,我将如何为脚本生成的每个标签启动构建?

本质上,我正在寻找构建由我在 jenkins 中的 shell 脚本返回的特定 svn 标签的最佳方法。此外,env 变量是否是 jenkins 接收的列表的最佳形式,因为我的脚本可以很容易地更改以符合 jenkins 可能需要的任何格式。

4

1 回答 1

2

参数化触发器插件可能能够遍历参数列表(修订版 2.12 声称类似),但我不知道如何调用它,所以这里有几个替代方案:

一种解决方案是创建一个构建(“Tag Builder”),它采用一个参数来指定构建的标签。然后创建另一个构建,使用您的输入文件使用Jenkins Remote API启动 Tag Builder 的构建。主构建将包含一个 shell 构建步骤,该步骤遍历您的输入文件并获取启动作业的 Jenkins url。您的 Jenkins 实例上的 urlhttp://jenkins:8080/job/MY_JOB/api描述了如何执行此操作。

这个解决方案的缺点是很难提取特定标签的构建趋势,因为所有标签实际上都在同一个构建中。(同样的缺点也适用于参数化触发器解决方案。)

根据标签的生命周期,更好的解决方案可能是使用 Jenkins Remote API 使用脚本和模板配置在外部创建构建。该 urlhttp://jenkins:8080/api描述了如何创建作业。

于 2012-12-19T18:56:36.890 回答