构建服务器和基础设施即代码
当我们讨论Jenkins文件结构的时候,要知道在基于像Jenkins这样的图形用户界面工具和DevOps的基础设施即代码原则之间经常会发生阻抗失配(impedance mismatch)。
理解这个问题的一种方法是:虽然Jenkins任务描述器基于文本文件,但它们并不是改变任务描述的主要界面,web界面才是。这种方式利弊参半。
Jenkins的既存构建之上创建定制的解决方案很容易,并不要求你非常熟悉Jenkins。
另一方面,Jenkins的开箱即用缺乏我们在程序世界中常用的许多功能。例如继承甚至定义函数这样的基本功能在Jenkins里需要大量工作。
GitLab的构建服务器功能,用的是另一种方法。构建描述器从一开始就只是代码。如果并不需要Jenkins提供的所有能力,GitLab的这个特性值得你一看。