Jenkins是基于插件的,几乎每个功能都要有一个插件。如果要使用Git,那么就有一个对应的Git插件。如果想使用Active Directory进行身份验证,那么也会有一个相应的插件。你应该明白了,几乎一切都是插件。而且,大多数插件都是由社区创建并维护的。当不确定如何完成某件事情时,插件目录(https://wiki.jenkins-ci.org/display/JENKINS/Plugins)通常是我们开始查找的第一个地方。
现在有超过1200个插件可用,由于种类繁多,大多数用户都通过插件完成几乎所有任务也就不奇怪了。Jenkins老手会创建一项Freestyle作业,例如,克隆代码并构建二进制文件。接下来是另一个运行单元测试的作业,这项作业用于运行功能测试,等等。所有这些Freestyle作业都将被连接在一起。当第一项作业完成时,它将调用第二项作业,第二项作业调用第三项作业,依此类推。Freestyle作业激发了对插件的大量使用。
我们会选择一个适合给定任务的插件,填写一些字段,然后点击保存。这种方法让我们能够在不需要了解不同工具如何工作的情况下自动执行这些步骤。需要执行一些Gradle任务?只需选择Gradle插件,填写几个字段,然后离开就可以了。
基于大量使用插件的这种做法可能是灾难性的。理解自动化及其背后的工具至关重要。此外,Freestyle作业的滥用打破了行业的基本原则,所有东西都应该存储在代码库中,以易于进行代码评审、版本控制等,好的编码实践也应该应用到自动化代码中去。
我们将采取不同的方式。(www.xing528.com)
我个人认为,构成CI/CD流水线的步骤应该在Jenkins这样的工具之外进行指定。我们应该能够在没有CI/CD工具的情况下定义所有命令,并且一旦我们确定所有事情都按预期工作,就可以将这些命令转换为CI/CD友好的格式。换句话说,自动化是第一位的,然后才是CI/CD工具。
幸运的是,不久前,Jenkins推出了一个名为Jenkins Pipeline的新概念。与通过Jenkins UI定义的Freestyle作业不同,Pipeline允许我们将CD流定义为代码。由于已经有了一套定义良好的命令,所以将它们转换成Jenkins流水线应该不是很难。
让我们试一试吧。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。