什么是扩展共享库
在工作中,我们可能会有很多Maven项目的打包部署,还有Android、iOS等等的打包任务,虽然项目不同,但是打包、部署等等流程有很多相似之处,扩展库共享库允许我们抽象出很多公共部分,这样后续在新项目配置Pipeline的时候,会非常简便
准备
- Jenkins:安装建议参考Jenkins安装
- Gitlab:安装建议参考Gitlab安装 为了方便,我这里都选择Docker安装,请大家自行配置Gitlab和Jenkins相关参数,比如Gitlab的SSH Key,Jenkins的凭证,这里不做赘述
扩展共享库配置
1.创建Gitlab Repo
- 如图,我创建了名字是jenkins-shared-libraries的Git Repo
2.目录说明
(root)
+- src # Groovy 源码文件
| +- com
| +- michael
| +- Bar.groovy # for org.foo.Bar class,主要是类库相关
+- vars # 变量和公共过程
| +- foo.groovy # 全局'foo'变量
| +- foo.txt # 'foo' 变量的帮助文档
+- resources # 资源文件 (external libraries only)
| +- com
| +- michael
| +- bar.json # static helper data for com.michael.Bar
| +- bar.shell # shell scripts
| +- package.json # 主要是Git commit message 插件
| +- commitlint.config.js # 主要是Git commit message 插件
3.配置Jenkins扩展共享库
- 依次点击 系统管理 > 系统配置,找到Global Pipeline Libraries,如下图
4.编写Pipeline Demo
在git的jenkins-shared-libraries中的vars下面,新建log.groovy文件,并提交
def info(message) {
echo "INFO: ${message}"
}
def warning(message) {
echo "WARNING: ${message}"
}
def error(message) {
echo "ERROR: ${message}"
}
5.执行
- 新建JOB
- 执行JOB 在Pipeline中引用共享库,并使用log.info的方法
- 执行结果
PS:这里仅仅是最简单的Hello world的扩展库介绍,让大家有个感性认识,后面的文章,会针对Maven、Npm这些常见的打包部署方式的项目,进行Pipeline的扩展共享库的实践介绍。