如何在Jenkins工作中共享脚本?

时间:2014-05-20 15:28:13

标签: jenkins

我设置Jenkins做几个CI工作。设置第二份工作,我发现自己正在复制“执行shell”的内容。构建从第一个作业开始的步骤,逐字逐句到第二个作业(因为我已经在任何地方使用过参数,因此它从源代码控制中获取$ {project} $ {version},并在作业环境中设置项目和版本使用Environment Injector Plugin)。

我不喜欢这种复制(我已经不得不返回并复制修复)。

如何在Jenkins中共享这些脚本(甚至更好:部分脚本)?

3 个答案:

答案 0 :(得分:4)

毕竟我在Jenkins里找到了一条道路:Template Project Plugin做了我想要的事情,虽然以一种有点奇怪的方式(在每个你想要分享的构建步骤中创建一个禁用的项目,然后在你想要的每个项目中)使用它,使用新的“使用其他项目的所有构建器”构建器。

对于寻找更多选项的人来说,有一个模板插件在Cloudbees商业产品中看起来要好得多(但在任何地方都没有价格指示),Managed Script Plugin看起来就像我想要的那样{{3}如果你想自己建造它。我没试过任何一个。

答案 1 :(得分:2)

您可以将'Execute'shell的内容放在脚本上,并将脚本放在从站可访问的公共位置。在'Execute Shell'中,您只需要使用适当的参数调用此脚本。

答案 2 :(得分:1)

您需要使用脚本与其他jenkins作业共享脚本(或脚本的一部分)。更好的想法是不在构建作业中键入shell脚本的内容,只使用源代码控制。您可以使用源代码管理中的每个项目调用脚本,或使用copy artifacts plugin,并在执行shell构建步骤中调用脚本。

如果您不能这样做,那么您必须编写一个脚本,在TEMP目录中查找新生成的shell脚本,并将其复制到下一个作业的工作区。这听起来比复制和粘贴更浪费时间。

使用源代码控制,如果对脚本进行一次更改,则会在任何位置进行更改。
练习安全的脚本!