持续集成是一种软件开发实践,开发人员在研发过程中经常集成他们的代码,通常每天至少集成一次,每次代码提交都会触发自动化构建(包括编译、代码合规检查 、单元测试、安全扫描和接口测试等)来验证,从而尽早地发现集成错误,确保 DevOps 构建流水线稳定运行。
当自动化构建成功或失败时,通过配置流水线通知提醒,可实现构建问题自动分析,精准推送给研发测试人员,让他们在第一时间知晓流水线状态,获得更好的服务体验,快速诊断和解决流水线问题,防微杜渐,提升工作效率。下面分享一下农行 DevOps 构建流水线在精准通知方面的优秀实践。
一、流水线精准通知类型知多少
农行 DevOps 构建流水线精准通知类型主要涉及5个条线,即单元测试、构建、代码合规、安全扫描和ATP自动化测试。当构建失败或成功,或者不满足相关质量门禁要求时,可通过配置实现邮件精准推送,将流水线状态、构建失败原因或问题推送给代码提交人或测试经理,让他们无需登录 DevOps 流水线平台,就可以知晓反馈,还能查看到具体的反馈内容,非常方便实用。
其中单元测试、构建和代码合规检查通常在发起拉取请求(即PR)失败或不满足质量门禁要求时,会通过配置精准通知到代码提交人;安全扫描在发现高、低风险问题时,会推送给指定开发人员;ATP自动化测试执行失败或不满足质量门禁要求时,会精准通知到测试经理。
二、流水线精准通知效果一堵为快
构建流水线精准通知内容主要包括构建状态、构建失败原因、提交时间和内容等摘要信息,研发测试人员点击详情可以直接在邮件中查看详细内容,及时完成反馈查看进行跟进和处理。下面展示4个邮件通知提醒效果:
1、构建失败邮件通知效果
2、安扫精准通知效果
3、部署失败通知效果
4、代码合规未通过质量门禁通知效果
如何启用流水线精准通知
启用构建流水线精准通知需要配置通知属性、任务属性、通知规则和收件人等信息。下面以构建失败精准通知为例,简述农行 DevOps 流水线精准通知配置。
1、配置通知属性
构建失败通知配置主要包括通知角色、团队范围和通知条件。通知角色主要包括上次更改者、请求者和请求目的,上次更改者是指当前最后一次构建定义修改者;请求者是本次构建执行请求者(如系统用户或人);请求目的是指由系统触发的具体人员,如拉取请求预构建通常由系统自动触发,即系统用户。
团队范围通常选择“一个特定的团队项目”,旨在实现精准通知,而不是群发。通知条件可按需设置为执行失败或成功,若状态选择为失败时,则仅在构建失败时收到邮件提醒。
2、设置任务属性
构建任务属性设置主要包括收件人地址、是否给提交人发邮件、用于比较buildID和目标分支。收件人地址是指收件人邮箱,若涉及多人时,可用英文半角逗号分隔;是否给提交人发邮件通常默认为yes,即给提交人发邮件,No则表示不给提交人发邮件;用于比较buildID是指构建ID,通常默认值-1,即表示自动获取上次构建;目标分支名称默认不填写,若存在多条分支时,可根据实际情况填写目标分支名称。