在Tencent Hub上,工作流设计界面如下所示:
代码推送时触发工作流
首先,创建工作流时,我们需要进行如下所示的设置:
这里,我们勾选develop和master分支推送时触发工作流。
拉取代码构建镜像
这里,我们需要借助工作流组件 hub.tencentyun.com/tencenthub/thub_docker_builder 来完成进行过构建。
这里,我们通过YAML文件来查看具体的配置参考:
组件参数说明如下所示:
Tencent Hub的工作流组件均已开源,我们也可以直接查看源代码(有时候如果开发文档没有及时更新,照着文档配置可能会入坑),如下图所示:
注意:这里笔者追加了标签,使用到了分支名称。也就是develop分支的代码构建的镜像会打上develop-latest的标签,master类似,以便于服务部署时能够区别开来。
复制镜像到容器服务镜像仓库
镜像构建成功之后,我们需要将镜像复制到容器服务镜像仓库。这里特此说明一下,之所以添加此步骤,是因为通过容器服务的镜像仓库的触发器触发服务更新更稳定以及更易于维护。事实上,大家也可以通过工作流来完成服务的更新,但是相关参数的配置颇为麻烦,而且很容易配错。
这里,我们用到的组件为:hub.tencentyun.com/tencenthub/copy_image
组件说明如下所示:
配置参考如下所示:
完成后推送钉钉消息
镜像复制完成,我们希望能够在相关的开发组、运维组接收到消息。Tencent Hub这边也有成熟的轮子——hub.tencentyun.com/tencenthub/notice_dingding。具体如下所示:
相关的配置也比较简单,不过我们需要创建一个钉钉自定义机器人:
然后,我们就可以使用此工作流组件进行配置:
至此,整个工作流就配置完成了。当然,我们也可以在工作流的结束节点添加webhook通知,只是没法设置消息模板,如下所示: