0

我想知道是否有外部 Jenkins 编排的解决方案?

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

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

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

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

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

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

当前的实现具有非常复杂的逻辑和几个将处理共享资源的技术工作。我们希望在一个地方实现该逻辑:一个协调器,它将在外部触发 Jenkins 作业,为它们提供运行参数。

4

1 回答 1

2

查看 jenkins 的Rundeck 插件

Rundeck是一个基于 SSH 的编排工具。

于 2013-08-08T21:30:40.757 回答