Jenkins 共享库应用

1. 创建一个共享库

1)创建共享库

可以直接在github中创建一个公开类型的仓库,也可以创建私有类型的gitlab仓库,需要提前配置好仓库的认证凭据,这里使用gitlab创建了一个名为jenkinslib的项目作为共享库,并创建类文件和Jenkinsfile文件  /src/org/devops/tools.groovy 和Jenkinsfile:

Jenkins 共享库应用_第1张图片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版本。

Jenkins 共享库应用_第2张图片

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

Jenkins 共享库应用_第3张图片

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

Jenkins 共享库应用_第4张图片

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

Jenkins 共享库应用_第5张图片

示例:这里用到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控制台日志输出

Jenkins 共享库应用_第6张图片

你可能感兴趣的:(Jenkins,jenkins,运维)