如何在Jenkins jobs之间共享脚本?

如何在Jenkins jobs之间共享脚本?,jenkins,Jenkins,我正在安排詹金斯做几项CI工作。设置第二个作业时,我发现自己将“Execute shell”构建步骤的内容从第一个作业逐字复制到第二个作业(因为我已经尽可能地使用了参数,所以它从源代码管理获取${project}${version},并使用环境注入器插件在作业环境中设置项目和版本) 我不喜欢这种复制(我已经不得不回去复制修复) 如何在Jenkins中共享这些脚本(甚至更好:部分脚本)?您需要使用脚本与其他Jenkins作业共享您的脚本(或部分脚本)。更好的办法是不要在构建作业中键入shell脚本

我正在安排詹金斯做几项CI工作。设置第二个作业时,我发现自己将“Execute shell”构建步骤的内容从第一个作业逐字复制到第二个作业(因为我已经尽可能地使用了参数,所以它从源代码管理获取${project}${version},并使用环境注入器插件在作业环境中设置项目和版本)

我不喜欢这种复制(我已经不得不回去复制修复)


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

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

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


使用源代码管理,如果对脚本进行一次更改,它会在任何地方更改
练习安全脚本

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

毕竟我在Jenkins内部找到了一种方法:它实现了我想要的功能,尽管有点奇怪(按照要共享的每个生成步骤创建一个禁用的项目,然后在每个要使用它的项目中,使用新的“使用其他项目的所有生成器”生成器


对于寻找更多选项的人,有一个模板插件在Cloudbees商业产品中看起来更好(但没有任何价格指示),a这看起来像是我想要的,如果你愿意自己构建它的话,a。我两个都没有尝试过。

好的,谢谢,所以Jenkins内部没有系统。我可以使用源代码管理,但是我有点困惑如何在从机上获得正确版本的脚本。这是一个在每台机器和ge上构建的项目ts脚本?但是它们会在同一时间跨机器“同步”吗?或者复制工件会有帮助吗?它们总是从服务器复制到从机上的项目构建中吗?我不完全确定你的意思,如果你从源代码管理中提取脚本,并且该构建在从机节点上执行,那么脚本将在sla中ve节点工作区。如果您在主节点上有一个作业,您可以使用该作业拉入脚本,并且需要在由从节点负责的上游作业中使用该脚本,您可以使用