jenkins share library

发布时间 2023-05-17 12:04:21作者: 力王7314

第一步,创建一个存放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

 

点击保存

第三步,验证,点击构建