1. 创建一个共享库
1)创建共享库
可以直接在github中创建一个公开类型的仓库,也可以创建私有类型的gitlab仓库,需要提前配置好仓库的认证凭据,这里使用gitlab创建了一个名为jenkinslib的项目作为共享库,并创建类文件和Jenkinsfile文件 /src/org/devops/tools.groovy 和Jenkinsfile:
2)在中定义类方法 如在tools.groovy中定义PrintMsg(msg)
pacakge org.devops
//打印信息
def PrintMsg(msg){
println(msg)
}3)Jenkinsfile引用类 在Jenkinsfile中使用 @Library('mylib') _ 来加载共享库,注意后面符号 _ 用于加载,类的实例化 def mytools = new org.devops.tools(),使用上面Groovy类文件中的方法 `PrintMsg(msg)`,如下:
@Library('mylib') _
def mytools = new org.devops.tools()
pipeline {
agent { label "build" }
stages {
stage("build"){
steps{
script{
msg = "hello jenkins"
mytools.PrintMsg(msg)
}
}
}
}
}2.在Jenkins中使用共享库
1)在Jenkins中配置共享库Jenkins系统配置 -> Global Pipeline Libraries
首先,为共享库设置一个名称 mylib (自定义,无需与gitlab仓库一致),注意这个名称后续在Jenkinsfile中引用,再设置一个默认的版本,这里的版本是分支的名称,我这配置的是main版本。

接下来配置共享库的仓库地址,我的仓库在gitlab中,所以这里填写的是gitlab的项目地址,(如果你用的是github可以使用github方式),如果仓库是私有的方式,需要在jenkins的凭据中添加一个账号用于下载共享库。

2)在pipeline使用共享库,流水线定义为 pipeline script from SCM方式,在URL中写入共享库的地址

保存Jenkins配置,执行pipeline,控制台输出:打印msg(hello Jenkins)

示例:这里用到ansiColor插件,在Jenkins输出有颜色的日志信息
tools.groovy
pacakge org.devops
//带颜色打印信息
def Post(value,color){
colors = ['red' : "\033[40;31m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m",
'blue' : "\033[47;34m ${value} \033[0m",
'green' : "\033[40;32m >>>>>>>>>>>${value}<<<<<<<<<<< \033[0m" ]
ansiColor('xterm') {
println(colors[color])
}
}
Jenkinsfile
@Library('mylib') _
def mytools = new org.devops.tools()
pipeline {
agent { label "build" }
stages {
stage("hello"){
steps{
script{
mytools.Post("success",'green')
}
}
}
}
}Jenkins控制台日志输出
