如何使用Jenkins WorkFlow创建具有多个管道的复杂值流

如何在Jenkins WorkFlow中实现具有多个管道的复杂值流?与Go CD:How do I do CD with Go?: Part 2: Pipelines and Value Streams类似.

对于分布式系统,我希望每个开发团队和运营团队都可以从他们自己的交付管道开始.一次更改只需要触发进行更改的团队的管道.它需要触发一个新的管道,需要从团队的每个管道中获取最新的成功工件并从那里继续前进.这意味着来自其他团队的工件不会重建或重新测试,因为它们没有被更改.在Fan In之后,我们可以运行一组自动化测试来验证分布式系统的正确行为.

在文档中我只发现你可以从多个VCS中获取,但我认为所有内容都会随着每次更改而构建和测试.这是我想避免的.

如果每个交付管道都在自己的Jenkins Job中.如何可视化完整的管道以及从其他管道中获取最后成功的工件或版本的最佳方法是什么?

最佳答案
在Jenkins中没有直接等价的值流,并且Workflow作业在这方面的行为没有任何不同:您可以将上游作业和下游作业与触发器相关联(在本例中为构建步骤,或核心ReverseBuildTrigger),并使用(例如)Copy Artifact插件,用于将工件传输到下游构建.同样,您可以使用外部存储库管理器作为“事实来源”,并根据推送到存储库的快照定义作业触发器.

也就是说,Workflow的部分目的是避免在大多数情况下需要复杂的作业链¹,因为通常使用标准控制流操作符和局部变量更容易推理,调试和自定义单个脚本,而不是管理一系列相互依存的工作.如果单个流的主要问题是您需要避免重建未修改的部分,那么一种解决方案是使用类似JENKINS-30412的内容来检查特定存储库检出的更改日志,并在空的情况下跳过构建步骤.我认为,在一般情况下,工作空间被其他构建破坏或丢弃,需要更多功能才能使这样的系统工作.

¹您肯定需要单独工作的一种情况是,出于安全原因,为不同项目做出贡献的团队必须无法看到彼此的来源或构建日志.

转载注明原文:如何使用Jenkins WorkFlow创建具有多个管道的复杂值流 - 代码日志