Jenkins共享库使用

6 篇文章 0 订阅
3 篇文章 0 订阅

Jenkins 共享库:如何创建,配置和使用

引言

Jenkins 是一款面向软件开发人员和运维人员的的开源自动化 CICD 平台。它允许用户创建和管理自动化构建任务,使软件开发和部署更加直接和高效。而共享库只是其中一个比较通用的插件。

先决条件

  • 已经存在部署好的 Jenkins > 2.x 平台,此处不做部署安装配置可自行搜索安装,建议使用快捷 Docker 容器化部署安装;
  • 一个可以使用的 WEB 浏览器,推荐谷歌浏览器;

什么是共享库

Jenkins中的共享库是在不同的 Jenkins Job 之间共享 Groovy 脚本的集合,被引入的共享库在执行JOB 的过程中会被拉入 Jenkinsfile 中

注意:共享库存储在 git 存储库中,进行版本控制、标记和其他 Git 功能可供用户使用。

使用共享库

为什么使用共享库

避免开发人员在开始新项目是需要重新编写相同的 groovy 脚本,使用共享库的方式在所有项目间进行共享,从而优化项目软件开发生命周期,并避免代码重复率过高,减少编码时间。

如何创建共享库

步骤 1: 创建共享库脚本
// 公共检出代码
def GetCode(branchName,gitSSHpURL,credentialsId,relativeTargetDir=''){
    println("下载代码 --> 分支: ${branchName}")
    checkout([$class: 'GitSCM', 
                branches: [[name: "${branchName}"]], 
                doGenerateSubmoduleConfigurations: false, 
                extensions: [
                    [$class: 'RelativeTargetDirectory', relativeTargetDir: "${relativeTargetDir}"],
                    [$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]
                ],
                gitTool: 'Default', 
                submoduleCfg: [], 
                userRemoteConfigs: [[credentialsId: "${credentialsId}", url: "${gitSSHpURL}"]]
            ])
}
步骤 2: 添加脚本到 git 仓库

仓库结构: 仓库名称–>src–>com–>devops–>clone_code.groovy

步骤 3: 添加共享库到 Jenkins

Jenkins Dashboard–>系统管理–>系统配置–>Global Pipeline Libraries

  • Name: 共享库名称,自定义即可;
  • Default version: 共享库版本,输入版本库分支名称、Tag 名称、Commit 值其中之一即可;
  • Load implicitly:如果选中,脚本将自动访问这个库,而不需要通过@Library请求它即隐式加载;
  • Allow default version to be overridden:如果选中,脚本可以通过在@Library注释中添加@someversion来选择库的自定义版本。否则,他们被限制使用您在这里选择的版本;
  • Include @Library changes in job recent changes:如果选中该选项,库中的任何更改都将包含在构建的更改集中,而更改库将导致为包含此库的管道运行新的构建。@Library(value=“name@version”, changelog=true|false),意思可以重写调用版本;
  • Cache fetched versions on controller for quick retrieval:如果选中此项,使用此库获取的版本将缓存在控制器上;
  • Retrieval method: 配置公共库获取的方式,并配置 Git 相关信息;
  • Library Path (optional):允许您设置从 SCM 根目录到库目录根目录的相对路径,可选参数;

如何引用共享库

在自定义的 Pipeline或者 Jenkinsfile 中通改过@Libray 形式进行引用;

// 加载名称为devopslib的共享库的master版本
@Library("devopslib@master") _

//导入共享库中的方法类
def builds = new com.devops.clone_code()
def mytools = new com.devops.tools()
def mydeploy = new com.devops.deploy()
def markpack = new com.devops.packdeployment()

stages {
        stage('克隆代码') {
            steps {
                script {
                    builds.GetCode(branchName,gitSSHpURL,credentialsId,projectname)
                }
            }
        }
}

结论

通过本文您可以轻松的创建 Jenkins 共享库,并能在每个项目上进行使用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值