无所不能,无所不及的Pipeline得益于Jenkins内嵌的Groovy支持,加上丰富的Step库,通过编写自定义Pipeline脚本你几乎可以实现任何复杂的构建、发布流程。下面简单谈谈使用Pipeline的四个段位。 I. 启蒙老师:Snipper GeneratorJenkins晦涩的行文风格并没有随着2.0的发布有所改善,Step库的官方参考手册成功的延续了Jenkins一贯的惜字如金风格,大多数Step都只有一句话的描述和一些参数类型,罕有使用样例,比如Git Step。要理解这些Step,基本靠脑补。好在Jenkins提供了一款良心产品,Snipper Generator,帮助使用者在Pipeline配置界面3步生成正确的调用语句。 II. 调试利器:Replay Pipeline维护过CI的同学一定知道,在成功创建一个正确、稳定运行的CI任务之前,往往需要历经多次调试和优化,创建Pipeline更是如此。为了避免重复打开配置界面调整Pipeline脚本,Jenkins贴心的提供了Replay功能。打开任意一次执行历史,在左侧点击Replay按钮,即可复原该次执行所运行的Pipeline脚本,无论脚本来源是任务本身还是远程仓库。 III. 隐藏秘籍:Workflow Global Library很多人不知道,Jenkins默认会启动一个SSHD服务,用于在CLI方式下执行一些Jenkins命令。Jenkins 2.0在此基础上,绑定了一个本地Git库(Workflow Global Library,简称WGL),用于上传一些全局共享的Groovy脚本,供同一Jenkins实例下所有Pipeline脚本调用。具体使用步骤如下:
IV. 如来神掌:Jenkins Plugin如果你需要同时维护多个Jenkins实例,那么WGL就不再适用了,因为每一个Jenkins实例你都需要上传一份脚本。这时就要祭出Jenkins Plugin大法,也即将共享的Groovy脚本封装到一个自定义Jenkins Plugin中,然后安装到需要的Jenkins实例中,以后也可以进行统一升级,有效降低了维护成本。要实现这一点,除了传统的定义Jenkins Plugin的方法,Jenkins官方博客还提供了另一种更为简便的封装方式,具体可以参考我的这个GitHub项目,demo-pipeline-step。 延伸阅读利用强大、灵活的Pipeline,我们可以像组装乐高玩具一般操纵Jenkins,根据实际情况构建所需的CI/CD流程。近期我设计的Frigate发布系统正式利用Jenkins Pipeline无缝衔接各个发布环节。 参考 |
|
来自: bananarlily > 《IT》