实践: 使用共享库扩展Jenkinsfile
- 2020 年 2 月 19 日
- 笔记
引导 您好,本模块主要学习Jenkins共享库的配置,目的是能够让大家编写更加灵活强大的流水线。主要包含以下内容: 1. 共享库内容 2. 创建共享库 3. 使用共享库 适合人群: 所有对DevOps感兴趣的同学。
共享库这并不是一个全新的概念,其实具有编程能力的同学应该清楚一些。例如在编程语言Python中,我们可以将Python代码写到一个文件中,当代码数量增加,我们可以将代码打包成模块然后再以import的方式使用此模块中的方法。
在Jenkins中使用Groovy语法,共享库中存储的每个文件都是一个groovy的类,每个文件(类)中包含一个或多个方法。每个方法包含groovy语句块。
1. 共享库内容
这是一个demo演示的共享库,大家可以看到仓库的结构与内容。这个仓库中包含了很多类,例如:我将kubernetes中的API方法封装在了kubernetes.groovy文件中,便于后面引用。在此你只需要知道共享库的结构 ,具体该如何创建共享库后面会讲述?
── docs │ └── README.mdREADME.md ├── src │ └── org │ └── devops │ └── tools.groovy └── vars
src目录主要存放我们要编写的groovy类,执行流水线时,此目录将添加到class_path中。vars目录主要存放脚本文件,这些脚本文件在流水线中作为变量公开。resources目录允许从外部库中使用步骤来加载相关联的非Groovy文件。
2. 创建共享库
新建文件src/org/devops/tools.groovy
, 在此我将这个文件定义为扩展工具类,主要放一些扩展方法。
例如:在构建日志中查看流水线详细日志会很乱,我们可以在日志中将重点步骤通过不同的颜色高亮显示,便于排错。我们开始写这样的一个方法PrintMes()
,包含两个参数,输出内容value
和内容的颜色color
。
注意:我们需要安装 插件AnsiColor
,这样才能使用ansiColor()方法,可以在片段生成器
查看更多的用法。
package org.devops //格式化输出 def PrintMes(value,color){ colors = ['red' : "