我设置Jenkins做几个CI工作。设置第二份工作,我发现自己正在复制“执行shell”的内容。构建从第一个作业开始的步骤,逐字逐句到第二个作业(因为我已经在任何地方使用过参数,因此它从源代码控制中获取$ {project} $ {version},并在作业环境中设置项目和版本使用Environment Injector Plugin)。
我不喜欢这种复制(我已经不得不返回并复制修复)。
如何在Jenkins中共享这些脚本(甚至更好:部分脚本)?
答案 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脚本,并将其复制到下一个作业的工作区。这听起来比复制和粘贴更浪费时间。
使用源代码控制,如果对脚本进行一次更改,则会在任何位置进行更改。
练习安全的脚本!