1 什么是共享库
其实也就是流水线在执行的时候所需要使用到的功能函数,也就是将所有的逻辑放在共享库里面。
共享库一般放在git上面,在git上面创建项目。然后按照共享库的结构去创建仓库,共享库这里是公用的仓库。
2 sharelibrary共享库结构
src 目录类似于标准的Java源目录结构。当执行流水线时,该目录被添加到类路径下
vars 目录定义可从流水线访问的全局变量的脚本。 每个 *.groovy 文件的基名应该是一个 Groovy (~ Java) 标识符, 通常是 camelCased。 匹配 *.txt, 如果存在, 可以包含文档, 通过系统的配置标记格式化从处理 (所以可能是 HTML, Markdown 等,虽然 txt 扩展是必需的)。
这些目录中的Groovy 源文件 在脚本化流水线中的 "CPS transformation" 一样。
resources 目录允许从外部库中使用 libraryResource 步骤来加载有关的非 Groovy 文件。 目前,内部库不支持该特性。
根目录下的其他目录被保留下来以便于将来的增强。注:src目录必须存在,其他可以没有
3 gitlab配置
3.1 新建项目jenkinslib
3.2 将文件推送到代码仓
4 Jenkins配置
4.1 jenkins安装依赖
4.2 全局配置
首先,我们为共享库设置一个名称 jenkinslib (自定义,无需与gitlab仓库一致),注意这个名称后续在Jenkinsfile中引用。 再设置一个默认的版本,这里的版本是分支的名称。(github默认版本是master)
这里可以定义若干个共享库,pipeline里面也可以导入若干个共享库。
主要配置有两步,一是取别名,二是定义好它的版本
4.3 新建流水线工程
配置参数
配置脚本
4.4 点击运行
其实可以看到也会去gitlab上面加载共享库,之后去下载共享库。