第一步,创建一个存放groovy配置文件的共享仓库
第二步,在这个共享仓库里必须要有src和vars目录,其实有个vars就行,src中我放了一些共享工具,方便在vars中调用
第三步,在src/org/devops下有如下内容
[root@master1 jenkins_shared]# cat src/org/devops/otherTools.groovy // 这里简单的定义一个函数给 deploy_front_base.groovy 做调用,做个示例 package org.devops def printMsg(msg) { println(msg) }
第四步,vars下有如下内容
[root@master1 jenkins_shared]# cat vars/deploy_front_base.groovy /* 首行导入 otherTools 然后最外层是一个 call 函数 接下来全篇就是正常的一个 pipeline 声明式写法(脚本式也如此) */ import org.devops.otherTools def call(Map runMap) { def timeStr=new Date().format('yyyyMMddHHmm') def mytools = new org.devops.otherTools() pipeline { agent { label runMap.RUN_NODE // 调用 Map 参数里面的值来确定该 Job 跑在哪 } environment { serverName = "${runMap.SERVERNAME}" // 设置 pipeline 环境变量,方便下面调用 } stages { stage('拉取代码') { steps { script { mytools.printMsg('hello world') // 放在 script {} 里调用 } sh """ echo "start time :${timeStr}" echo "pull ${serverName} code" """ } } stage('构建项目') { steps { sh "echo 'build'" } } stage('启动程序') { steps { sh "echo 'start'" } } } } }
在jenkins中配置share library
点击保存,至此jenkins share library已经全部配置好,接下来就去配置项目
项目配置
第一步,在项目的git代码仓库中,需要添加一个groovy文件,这个文件是用来调用share library的,必须要有
testgo.groovy内容如下:
/* 首行是导入前面设置好的 Library,**前面图片中的 Default version 我留空**,这里使用 jenkins_lib@main 给动态填上;如果你的分支是 master ,这里就是 **@Library('jenkins_lib@master') _** 然后定义一个 Map,设置需要的 key value。 最后就是调用 deploy_front_base.groovy] 文件,把 Map 传进去使用。 */ @Library('jenkinslibrary@main') _ def runMap = [:] // 定义项目构建运行的 NODE ,根据实际情况进行调整 runMap.put('RUN_NODE','master') // 项目名 runMap.put('SERVERNAME', 'hellogo') deploy_front_base(runMap)
第二步,配置jenkins
点击保存
第三步,验证,点击构建
- jenkins library sharejenkins library share shared file directory libraries shared file libraries loading glibcxx library unable shared shared libraries loading libxml2 shared permission libraries loading shared libraries libcrypto bcftools shared libreadline libraries loading 细节library语言shared embedding library import shared