基于环境变量/ shell输出构建特定项目

时间:2012-12-19 11:06:40

标签: svn build jenkins

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

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

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

1 个答案:

答案 0 :(得分:2)

Parameterized Trigger plugin可以遍历一个参数列表(修订版2.12声明类似的东西),但我不知道如何调用它,所以这里有几个选择:

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

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

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