前言
近些年来Docker、 Kubernetes、 Helm、 云原生如火如荼,Jenkins 凭借开源社区的贡献以及类似 CloudBees 团队的加持。紧跟技术发展趋势,产出了集成于 Docker、 Kubernetes、 Helm、AWS等各种工具插件,还有 Jenkins X,原来配置页的 Manage Nodes
也"悄悄地"变成了 Manage Nodes and Clouds
。 另一方面,自研能力不错的企业,也纷纷基于 Jenkins API开发一套 Devops CICD 平台,给 Jenkins那个"老头"套上了一层年轻的外衣,效果也十分理想。
Jenkins开源的特性,还有浩瀚如海的插件,学习门槛低等等,都让其成为一个不错的选择。至少可以在有限资源的条件下,针对项目中需要搭建少数的几个流水线这样的需求而言,Jenkins再合适不过了。
纵使作为一个新技术的爱好者,当你用户其他新的CI工具时,也不妨回过头来看一看这个“老头”,其中包含的一些通用法则、思想会让你明白如何才能搭建使用于某个项目易用、易扩展、易维护的流水线。
提高代码复用性之Shared Library
如果你为一个项目里的多个Code Repo写多个jenkinsfile,你八成会遇到多个不同流水线中有大量重复代码的情况,尤其在服务众多的微服务的项目当中。很多时候为了方便省事我们都是直接复制粘贴类似的逻辑代码到不同的jenkinsfile中去,但如果某一天你需要更改一个小小的命令,那你就要受点小罪了。
而Shared Library便是解决代码重复的方法之一,只需根据流水线段落的合理划分,将流水线逻辑重复