sharedLibrary共享库优化CICD
如果你经常使用 Jenkins Pipeline 一定会遇到多个不同流水线中有大量重复代码的情况,很多时候为了方便我们都是直接复制粘贴到不同的管道中去的,但是长期下去这些代码的维护就会越来越麻烦。
为了解决这个问题,Jenkins 中提供了共享库的概念来解决重复代码的问题,我们只需要将公共部分提取出来,然后就可以在所有的 Pipeline 中引用这些共享库下面的代码了。
什么是共享库
共享库(shared library)是一些独立的 Groovy 脚本的集合,我们可以在运行 Pipeline 的时候去获取这些共享库代码。
使用共享库最好的方式同样是把代码使用 Git 仓库进行托管,这样我们就可以进行版本化管理了。
使用共享库一般只需要3个步骤即可:
- 首先创建 Groovy 脚本,添加到 Git 仓库中
- 然后在 Jenkins 中配置将共享库添加到 Jenkins 中来
- 最后,在我们的流水线中导入需要使用的共享库:
@Library('your-shared-library'),这样就可以使用共享库中的代码了。
让devops流程更好用
- 项目更简便的接入
- devops流程更方便维护
思路
把各项目中公用的逻辑,抽象成方法,放到独立的library项目中,在各项目中引入shared-library项目,调用library提供的方法。
- 镜像构建、推送
- k8s服务部署、监控
- 钉钉消息推送
- 代码扫描
- robot集成测试
为了兼容多环境的CICD,因此采用模板与数据分离的方式,项目中的定义模板,shared-library中实现模板替换。为了实现shared-library与各项目解耦,使用configmap来维护模板与真实数据的值,思路是约定大于配置。