FBI警告:你的代码构建失败

​ 某个深夜,电脑前的我十指疾舞,屏幕上一行行代码快速滚动,ctrl+s、git commit、git push 一气呵成,打开P站,正准备腾出双手好好休息时,前方传来最新消息: FBI Warning…
不是还没打开P站吗,怎么回事,我心头一惊,再定睛一看: your code build failed… 虚惊一场,原来是刚才提交的代码构建失败了。


​ 在使用CI/CD工具时,很多时候提交了代码想知道有没有成功构建或者部署上,这个时候就要到后台瞧一瞧或者等待通知结果的邮件了,那有没有更直观的法子呢?
​ 在jenkins的插件中,有一个有趣的插件:Traffic Light Plugin, 办公室里一个硕大的交通信号灯,当你提交代码后,jenkins吭哧吭哧给你编译打包部署,如果这过程中出错了,会亮起红灯,全办公室都知道你的代码没通过构建啦。

traffic light

​ 受此启发,我以前做的一个小电视就派上用场了,平时用来显示树莓派集群的状态信息:

raspberry pi monitor

​ 当有代码提交到git仓库时,部署在树莓派上的jenkins会将代码按照我们设定好的作业流程编译部署,

start build display

​ 然后将构建结果通过MQTT通知给小电视,小电视将结果显示出来。如果构建过程中有错误,嘿嘿,FBI警告伺候!

failed build display

​ 整个流程如下:

FBI-Warning-Flowchart

MQTT Notification

​ jenkins有一个MQTT Notification的插件,可用于在构建完成后的操作:

after-build-action-list

​ 只需要简单的设置mqtt的服务地址,topic和message,在构建结束后就能将构建结果发送出去了。

mqtt notification setting

​ 这里有个问题, Message的内容是本次构建的一些信息,比如版本号, 构建结构等, 那么如何获取构建信息呢? 看一下文档说明: mqtt-notification-plugin,有以下变量可以获取到:

name value
PROJECT_URL 工程的URL地址
BUILD_RESULT 构建结果, 值有 SUCCESS(成功), FAILURE(失败), ABORTED(中断)等
BUILD_NUMBER Build的版本号
CULPRITS 构建(失败)的原因列表

mqtt notification doc

​ 小电视在收到消息后的如何显示,大可以发挥自己的想象了。提供一张素材:
fbi header
我的参考代码(micropython)