多阶段CI监控,或者如何将部署步骤拆分成可控的块

首先,我并不是在寻找一个产品推荐(当然了,但是我更喜欢寻找问题的解决scheme,而不是试图从现有的列表中挑选某些东西)

环境:我正在使用Jenkins来运行一个复杂的,多阶段的工作。 作业创build和configuration服务器,在其上部署操作系统和应用程序堆栈,使用演示数据填充堆栈,运行标准testing,然后执行一些额外的负面testing,然后使用更多configuration的服务器扩展堆栈,并运行更多testing。

问题:在这些阶段的任何一个阶段都可能发生失败,无论是记者configuration不当还是完全失败。 无论哪种方式,我可以在jenkins做两件事之一 – 退出(1)或继续下去,将问题倾倒到控制台。 两者都不是很好,因为我最终会得到一个不完整的工作(如果我退出),或者有一个很好的绿色误报,为了确保它是真正的绿色,我必须阅读几个从日志安慰。

我在寻找什么:Jenkins或其他系统的一种方式,能够分别监控和报告每个步骤在工作中的成功/失败,保持工作的一致性(例如,我无法为每个步骤开始新的工作),所以我可以看到,例如,供应和操作系统部署工作,堆栈部署有错误,但已完成,负面testing失败,而不是每个运行的当前绿色/红色状态,除非我进去阅读日志

任何build议,欢迎,无论是为我不知道的jenkins插件,或其他系统,或其他任何。

你是否使用pipe道作为jenkins工作或传统自由式工作链接在一起的代码? 如果后者,那么当我知道你可以设置工作继续,我相信你可以设置它发送电子邮件给你失败的权利?

如果你决定使用前者,你可以通过try和catch块来实现。 我有一些可能会或可能不会失败的步骤,而且他们不是一个好手。 所以,我把这个步骤放在一个try块中,在catch中,我将强制设置构build成功并发送电子邮件。 它是这样的:

try { sh 'exit 1' //the step that might trigger a complete failure } catch(err) { currentBuild.result = 'SUCCESS' //force set the job to a success. ie continue emailext .... // email that the step failed }