第一步,创建一个存放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
点击保存
第三步,验证,点击构建
标签:groovy,vars,share,runMap,library,org,jenkins From: https://www.cnblogs.com/fengzi7314/p/17408214.html