选择外部Jenkins业务流程的方法

时间:2013-08-08 06:13:48

标签: jenkins continuous-integration workflow orchestration

我想知道是否有外部Jenkins业务流程的解决方案?

让我先解释一下我们的设置:

  • 我们有几个巨大的Java工件,需要通过持续集成管道进行测试
  • A作业配置为在提交后获取代码,运行单元测试并自行构建工件
  • B个作业(现在有4个)使用空数据库并行运行不同的冒烟测试。在A作业成功后,他们触发了 。这些作业使用外部资源:云节点(将部署工件)和数据库池中的数据库。乔布斯可以返回三种状态:
    • 绿色:云节点已成功获取,工件已部署,所有测试均已通过
    • 黄色:未检测到基础设施故障,但部分(或全部)测试失败 - >责备开发人员/ QA在这里
    • red:还有一个基础架构失败:云乱了,数据库不可用,工件部署失败。 - >责备DevOps在这里
  • C作业:如果所有B作业均为绿色,则仅运行 。否则流程结束。将工件上传到Nexus
  • D作业:运行功能测试:此处的多个作业将重用B作业中的云节点,以节省部署时间。我们不关心他们将获得哪种状态:绿色,黄色或红色。只记录结果及其结果。但是,此处有两个作业将在集群配置中部署来自A作业的原始工件,如果部署成功,则E作业独立启动(即D1作业失败,而不是{{1}不应该启动,但如果E1作业在同一工作流程中成功,则应触发D2

工作流完成后,您需要确定状态:如果存在致命错误(任何红色构建),则工作流必须具有失败状态。

完成工作流后,必须释放所有资源:云节点和数据库。

我可以利用哪个工作流程/流程工具流程库来实现这样的逻辑?

我们有其他几个具有不同流量的管道,因此它应该是灵活的。

当前的实施具有非常复杂的逻辑和若干技术工作,这些工作将负责共享资源。我们希望在单个位置实现该逻辑:一个将在外部触发Jenkins作业的协调器,为它们提供运行参数。

1 个答案:

答案 0 :(得分:2)

查看jenkins的Rundeck plugin

Rundeck是一个基于SSH的业务流程工具。