Skip to content

1、实战:共享库配置-2024.6.19(测试成功)

实战:共享库配置-2024.6.19(测试成功)

1、创建gitlab代码库

创建gitlab代码库,当做pieline的共享库来使用。

  • 创建一个组
devops8

image-20240619122132251

  • 创建一个项目
my-jenkinslib-demo

image-20240619122250505

  • 创建相应文件

image-20240619122914345

配置文件内容:

Jenkinsfile内容:

groovy
@Library("mylib") _

def MyTest = new org.devops.MyTest()

pipeline{
    agent any 

    stages{
        stage("run"){
            steps{
                script {
                    //script
                    // 调用函数并打印返回值
                    name = MyTest.GetUserNameByID(1)
                    println(name)   //jenkins1
                }
            }
        }
    }
}

src/org/devops/MyTest.groovy内容:

groovy
// define GetUserName
package org.devops

def GetUserNameByID(id){
    users = [
            ["id": 1, "name": "jenkins1"],
            ["id": 2, "name": "jenkins2"],
            ["id": 3, "name": "jenkins3"],
        ]

    for (i in users){
        if (i["id"] == id){
            return i["name"]
        }
    }
    return "null"
}

2、Jenkins系统配置pipeline共享库

  • 搜索lib

image-20240619123541040

这里记得添加好登录gitlab的凭据:(因为我的gitlab库是私有库)

image-20240619123510757

image-20240619123605011

  • Jenkins pipeline上配置从gitlab仓库拉取Jenkinsfile文件

image-20240619123857350

3、测试

提交gitlab代码后,运行流水线:

image-20240619124023255

  • 额……下载代码阶段为啥这么耗时……

image-20240619184315027

image-20240619184424629

  • 这里配置跳过代码检出功能
groovy
@Library("mylib") _

def MyTest = new org.devops.MyTest()

pipeline{
    agent any 

    options {
        skipDefaultCheckout true
    }

    stages{
        stage("run"){
            steps{
                script {
                    //script
                    // 调用函数并打印返回值
                    name = MyTest.GetUserNameByID(1)
                    println(name)   //jenkins1
                }
            }
        }
    }
}

image-20240619184825132

  • 修改代码后提交,然后运行

image-20240619185110272

image-20240619185014548

最近更新