DevOps / Jenkins

Jenkins高级用法-共享库使用

浅时光博客 · 6月21日 · 2020年 · 22.4w 次已读

一、共享库介绍

Jenkins 的共享库允许用户在多个 Pipeline 和项目中共享代码和功能,这样可以避免在不同的 Pipeline 中重复编写相同的代码。共享库通常包含一组 Groovy 脚本文件(如类、变量和方法),可以从 Jenkinsfile 中引用。

什么是Jenkins共享库?

Jenkins共享库是一种可重用代码的机制,它允许项目组在Jenkins中编写自己的通用函数和类。这些通用函数和类可以被多个流水线或任务调用,从而避免了代码的重复编写。

使用Jenkins共享库,您可以将常见的构建步骤封装到库函数中,并使它们可供多个Jenkinsfile使用。这样不仅可以简化Jenkinsfile的编写,还可以减少错误和维护成本。

Jenkins共享库的组成部分

Jenkins共享库包含以下组成部分:

1. src目录

该目录包含共享库的所有源代码,包括Groovy类和其他资源文件等。这些代码通过Git SCM进行版本控制,并使用Jenkins标准插件管理器进行安装和升级。

2. va文章来源(Source):浅时光博客rs目录

该目录包含定义Jenkins全局变量和步骤的脚本文件(以.groovy为扩展名)。这些脚本文件被称为”vars”,每个文件定义一个全局变量或步骤。

3. resources目录

该目录包含共享库使用的其他资源文件,例如文档、图片等。

使用Jenkins共享库的优点

使用Jenkins共享库的主要优点包括:

  • 避免代码重复编写
  • 简化Jenkinsfile的编写
  • 提高代码复用和可维护性
  • 支持版本控制和升级管理
  • 增加了Jenkinsfile的可读性和可维护性

如何使用Jenkins共享库?

要使用Jenkins共享库,请按照以下步骤操作:

文章来源(Source):浅时光博客
  1. 在Jenkins实例上安装共享库插件
  2. 在Git仓库中创建共享库并将其上传到远程仓库
  3. 在Jenkins中配置共享库的全局变量和步骤
  4. 在Jenkinsfile中引用共享库的步骤和变量

通过使用共享库,您可以更好地组织和管理 Jenkinsfile 中的代码,并避免在不同 Pipeline 之间重复编写相同的代码。共享库还可帮助促进代码重用和可维护性,并提高开发效率。

注意:在使用共享库时,需要仔细考虑版本控制和依赖关系,并确保所有共享库中的代码都被适当地测试和验证。建议不断更新和维护共享库以确保其与 Jenkins 和其他插件的兼容性,以及它们的可靠性和安全性。

二、共享库实践

1、创建共享库

  • 最后目录结果如下:
  • 创建vars库目录

2、编写方法文件

  • src/org/devops目录下创建一个方法,文件名字定义为 tool.groovy
  • 在日志中将重点步骤通过不同的颜色高亮显示
  • 需要安装插件AnsiColor,才能使用ansiColor()方法
package org.devops
//格式化输出
def PrintMes(value,color){
    colors = ['red'   : "3[40;31m >>>>>>>>>>>${value}<<<<<<<<<<< 3[0m",
              'blue'  : "3[47;34m ${value} 3[0m",
              'green' : "[1;32m>>>>>>>>>>${value}>>>>>>>>>>[m",
              'green1' : "3[40;32m >>>>>>>>>>>${value}<<<<<<<<<<< 3[0m" ]
    ansiColor('xterm') {
        println(colors[color])
    }
}
  • Jenkins安装插件AnsiColor
  • 重启Jenkins生效

3、使用共享库

4、引用共享库

  • 编写jenkinsfile,然后在jenkinsfile中通过@Library('jenkinslib') _来加载共享库
  • 新建一个JOB任务
  • 将下面的代码写到Job中
#!groovy
@Library('jenkinslib') _     
def tool = new org.devops.tool()

pipeline {
    agent { node {  label "master" }}

    stages {
        //下载代码
        stage("GetCode"){ 
            steps{  
                timeout(time:5, unit:"MINUTES"){   
                    script{ 
                        tool.PrintMes("获取代码",'green')
                    }
                }
            }
        }
    }
}
  • 然后运行该Job并查看Job输出日志
  • 直接将下面的片段,放在jenkinsfile文件的头部即可

本文作者:浅时光博客
原文链接:https://www.dqzboy.com/2859.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

1 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. Astro广东·广州2021-12-29 · 19:51