我工作的公司正在评估 jenkins 2.71,特别是管道和蓝海插件。我们已经测试了GoCD,我们需要一种方法,就像在GoCD中一样,管道可以自动从其他 2 个管道获取工件(获取每个管道的最后一个成功结果),这里是我们的案例。
我们有这些初始管道(构建和运行测试),它们反映了 2 个项目:
- 前端,~ 15 分钟
- 后端,约 10 分钟
我创建了一个名为configure的管道(大约 1 分钟),例如一个名为customer-name的参数,它获取后端和前端文件并将它们放在一起,然后应用特定的客户特定配置和定制并生成可部署的工件。除了“客户名称”,我还可以并行化这项工作,一次为每个客户创建所有工件,在不同的目录中分开。
下一个管道是将它们部署在为每个客户分开的不同测试服务器上。这也可能是同一个配置管道的一部分,我们仍然需要看看如何在詹金斯中把东西放在一起......
理想情况下,我需要将管道配置为在每个前端或后端成功后自动(或按需)触发,并将这两个管道中最后成功的工件作为输入,但不仅仅是最后一次成功的构建,我们需要依赖 git分支名称。
例如我们有:
后端分支:
- 掌握
- 发布/2017.2
前端分支:
- 掌握
- 发布/2017.2
在管道编辑器中,我找到了一个Build Triggers选项并将其设置如下:构建其他项目后构建>要观察的项目:前端,后端>仅当在我充满失败的测试环境中构建稳定或更好时才检查触发器甚至触发如果构建不稳定。
进一步搜索,我找到了Copy Artifact Plugin
但现在最大的问题是,如何从这些管道中获取具有相同 git 分支名称的最后成功的工件?
因为我们不想将“release/2017.2”的后端构建与前端“master”混合在一起,所以它必须找到具有相同关系或参数或任何您想称呼它的最后一个成功构建,在我们的例子中关联是 git 分支名称。
有可能实现这一目标吗?如果是,如何?
复制工件插件似乎适用于自由式项目。它会在管道中工作吗?这也是一个担心...
谢谢