跳到主要内容

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

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

1、创建gitlab代码库

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

  • 创建一个组
devops8

image-20240619122132251

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

image-20240619122250505

  • 创建相应文件

image-20240619122914345

配置文件内容:

Jenkinsfile内容:

@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内容:

// 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

  • 这里配置跳过代码检出功能
@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