Jenkins Pipeline系列(一)—— 如何配置扩展共享库

date
Apr 19, 2020
slug
ci-jenkins-shared
status
Published
tags
DevOps
summary
type
Post

什么是扩展共享库

在工作中,我们可能会有很多Maven项目的打包部署,还有Android、iOS等等的打包任务,虽然项目不同,但是打包、部署等等流程有很多相似之处,扩展库共享库允许我们抽象出很多公共部分,这样后续在新项目配置Pipeline的时候,会非常简便

准备

  • Gitlab:安装建议参考Gitlab安装为了方便,我这里都选择Docker安装,请大家自行配置Gitlab和Jenkins相关参数,比如Gitlab的SSH Key,Jenkins的凭证,这里不做赘述

扩展共享库配置

1.创建Gitlab Repo

  • 如图,我创建了名字是jenkins-shared-libraries的Git Repo
    • notion image

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,如下图
    • notion image

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
    • notion image
  • 执行JOB在Pipeline中引用共享库,并使用log.info的方法
    • notion image
  • 执行结果
    • notion image
PS:这里仅仅是最简单的Hello world的扩展库介绍,让大家有个感性认识,后面的文章,会针对Maven、Npm这些常见的打包部署方式的项目,进行Pipeline的扩展共享库的实践介绍。

Reference


© 天行者YANG 2020 - 2022