我很有兴趣收集有关此类要求背景的更多细节...... 我不相信工作依赖的有效性。 您应该考虑以下算法。
A(手动事件)执行B(强制事件),然后执行C(强制事件)
和另一个序列(与本机詹金斯的生活方式更加匹配)
执行(手动事件)更新假象a,B(a上的假象变化监视)并且执行更新假象b,C(如果序列需要则在-or b上的假象变化监视)并且更新假象c,D(其他作业伪影)更改b和c上的监视(或者如果需要序列B,C则执行c)并完成工作。
然后,您将关注作业何时开始(触发系统 - SCM事件触发器,FStrigger,URLTrigger,IvyTrigger,ScriptTrigger)以及作业产生的内容。 (deployArtefact,promotebuild等...)
要管理可变性,您还应该看一下Variable extractor插件( https://github.com/cittools/variables-extractor-plugin ) 使用与Python命名的regexp包装器相同的语法实现正则表达式变量reader。) 有时,它可能是有用的。
我选择的解决方案不使用任何Jenkins机制,因为没有... 我最终使用了 的 的RabbitMQ 强> 消息队列,如下: 1.在单独的主机(未连接到Jenkins)上设置持久性RabbitMQ服务器。主持人是CentOS 7。 2.添加了pub / sub 订户 在上游工作。 3.添加了pub / sub 出版者 在下游工作。
上游订户轮询消息队列以查找下游作业发布的消息,并在接收到这些消息时起作用。 这具有额外的好处,即下游作业可以通过相同的机制进行相互通信。 所有脚本都是Python,所以我正在使用 的 鼠兔 强> 与RabbitMQ进行交互。 鼠兔: https://pika.readthedocs.org/en/latest/index.html