大概从 2019 年,我就开始使用 CI/CD 的方式发布我的博客,例如之前的案例:【玩转腾讯云】腾讯云开发 xCODING 实现 Hexo 博客的持续集成

CODING.NET 的持续集成功能是基于 Jenkins 实现的,Jenkins 通过插件可以带来很多第三方的能力。CODING.NET 在 CI 流水线中原生支持了很多插件,并且提供了“自定义团队插件”的功能,可以将团队内部的工具或者命令封装为自定义插件,方便其他人复用。

在给这个博客进行 CI/CD 的时候,每次 hexo 打包好的静态文件会推送到 COS(腾讯云对象存储),用户访问时会从腾讯云 CDN 回源到 COS,因为是全静态的网页,所以 CDN 的缓存策略会给的比较严格,每次发布都需要去腾讯云 CDN 控制台刷新 CDN 缓存。

为此我根据腾讯云 CDN 的 API 接口,写了一个腾讯云 CDN 缓存刷新的 CODING 持续集成插件,使用该插件可以对指定的 URL 进行刷新缓存(支持多个 url),可以直接在 CODING.NET 持续集成中使用,非常方便。

开源地址:https://txisfine.coding.net/public/txblog/qcdn-cacheflush-ci-plugin/git/files

下载已经打包好的插件:qcdn-cacheflush-ci-plugin.zip

安装

登录企业管理端,团队设置中心,持续集成,构建插件。
20240326213412

在团队构建插件中,新建构建插件。
20240326213447

上传插件包,并确认发布。
20240326213534

这样,我们的插件就发布好了。

在构建计划中使用

找到需要使用该插件的 Jenkins 工作流,增加一个 Step,选择“发布部署”->“团队插件”。

20240326213805
点击这个 Step,配置插件,需要腾讯云 SID,SK,以及需要刷新的 urls(可以是多个,用半角逗号隔开)。

20240326213938
因为插件这块文本框只有 text 类型的,所以我这里使用了环境变量,环境变量的类型选择了保密字符串,所以不会出现在构建日志中。

重新运行一下流程,刷新 CDN 缓存就成功了。
20240326214128

参考资料