当Jenkins构建被 里程碑() 命令中止时,我希望构建状态为成功。
目前我们有3个阶段需要将应用程序部署到:INT,PRE,PROD。我们的CI流程如下:
构建 - >测试 - >构建Docker - >部署到INT - > 批准PRE - >部署到PRE - > 批准PROD - >部署到PROD
PRE和PROD的批准步骤如下:
/************** PRE **************/
stage('Approval for PRE') {
try {
timeout(time: approvalTime, unit: approvalTimeUnit) {
input 'Do you approve the deployment to PRE?'
}
} catch (Exception ex) {
finishBuild = true
// return statement just ends stage
// => pipeline continues after stage
// => return must be called again outside stage or node again
return
}
}
// Stop build if flag was set
if (finishBuild)
return
// MILESTONE stops build with status = "NOT_BUILT"
milestone()
我已经尝试将milestone()命令放在try& catch块中,但是没有用完。还有其他解决方案吗?
强度的探讨
目前我们没有将所有内容部署到PROD,大部分时间都会忽略审批,我们会继续使用INT。随着项目的成熟,这可能会改变。
但是,如果我们不时继续所有以前的版本都会以灰色状态结束,这对我的队友来说很困惑:没有出错,所有测试都是绿色的,没有人中止但是构建是不再是绿色。