在解决了相反的问题后,我现在需要将一些简单数据从每个下游作业传递回其父作业。 一个显而易见的选择是将数据写入文件,将其另存为工件,然后让父上游作业检索其所有下游作业的工件。
还有其他想法吗?我还没有看到任何插件,Build Pipeline和Workflow插件似乎都是矫枉过正的。
谢谢, 阿米尔
答案 0 :(得分:0)
我选择的解决方案不使用任何Jenkins机制,因为没有...
我最终使用了 RabbitMQ 消息队列,如下所示:
1.在单独的主机(未连接到Jenkins)上设置持久性RabbitMQ服务器。主持人是CentOS 7
2.在上游作业中添加了pub / sub 订户
3.在下游作业中添加了pub / sub 发布者。
上游订户轮询消息队列以查找下游作业发布的消息,并在收到这些消息时采取行动。
这具有额外的好处,即下游作业可以通过相同的机制进行相互通信
所有脚本都是Python,所以我使用 pika 与RabbitMQ进行交互
皮卡:https://pika.readthedocs.org/en/latest/index.html
答案 1 :(得分:0)
我很有兴趣收集有关此类要求背景的更多细节...... 我不相信工作依赖的有效性。 您应该考虑以下算法。
A(手动事件)执行B(强制事件),然后执行C(强制事件)
和另一个序列(与本土詹金斯的生活方式相匹配更多)
执行A(手动事件)更新假象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。) 有时,它可能是有用的。