Jenkins share library

Jenkins 版本信息:

参考文章:二丫讲梵
官方文档:扩展共享库

version : Jenkins 2.358
安装方式:yum 安装(这里就不赘述怎么安装了)

配置

去到 Jenkins 系统设置 -> 系统配置 -> Global Pipeline Libraries

如图配置几个地方
请添加图片描述
请添加图片描述

Groovy 文件介绍

[root@cicd test]# tree -N ./*
./pipeline_test			# 这个目录下面的文件一一对应项目,比如有个项目 [testgo]
└── testgo.groovy		# 由该文件开始,调用下面的 deploy_front_base.groovy

./sharelibrary			# 该目录就是共享库了
├── src
│   └── org
│       └── devops
│           └── otherTools.groovy
└── vars
    └── deploy_front_base.groovy

testgo.groovy
/*
首行是导入前面设置好的 Library,**前面图片中的 Default version 我留空**,这里使用 jenkins_lib@main 给动态填上;如果你的分支是 master ,这里就是 **@Library('jenkins_lib@master') _**
然后定义一个 Map,设置需要的 key value。
最后就是调用 deploy_front_base.groovy] 文件,把 Map 传进去使用。
*/
@Library('jenkins_lib@main') _

def runMap = [:]
    // 定义项目构建运行的 NODE ,根据实际情况进行调整
    runMap.put('RUN_NODE','master')

    // 项目名
    runMap.put('SERVERNAME', 'hellogo')

deploy_front_base(runMap)
otherTools.groovy
// 这里简单的定义一个函数给 deploy_front_base.groovy 做调用,做个示例
package org.devops

def printMsg(msg) {
    println(msg)
}
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'"
                }
            }
        }
    }
}

创建 pipeline job

使用 SCM 方式设置
唯一值得说的就是最下面的脚本路径把需要调用的文件名写上
文件名 -> 项目,一一对应

在这里插入图片描述
在这里插入图片描述
到此,整的一个 Jenkins share library 就配置结束了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值