Jenkins进阶01共享库shareLibrary封装常用模块

Jenkins进阶01共享库shareLibrary封装常⽤模块
Jenkins共享库实践
共享库这并不是⼀个全新的概念,其实在编程语⾔Python中,我们可以将Python代码写到⼀个⽂件中,当代码数量增加,我们可以将代码打包成模块然后再以import的⽅式使⽤此模块中的⽅法。
在Jenkins中使⽤Groovy语法,共享库中存储的每个⽂件都是⼀个groovy的类,每个⽂件(类)中包含⼀个或多个⽅法。每个⽅法包含groovy语句块。
创建共享库,共享库的⽬的就是将⼀些反复使⽤的模块进⾏封装,⽐如拉取代码模块,邮件通知模块,这样使得你的Jenkinsfile看起来更加简洁,减少代码量。
可以在Git等版本控制系统中创建⼀个项⽬⽤于存储共享库。共享流⽔线有助于减少冗余并保持代码整洁。
总结就是将所有的⼯具以共享库的⽅式封装起来
属性:
共享库名称
共享库版本
共享库地址
├── src
│└── org
│└── devops
│└── vy
├── vars
│└── vy
│└── vy
└── resources
│└── org
│└── devops
│└── config.json
gitlab上⾯创建共享仓库(封装常⽤的函数代码块)
共享库内容分析
这⾥⾯定义了⼀个 Build 函数, 接受两个参数 buildTools 和 buildType , 前者定义的是⼀个构建⼯具的位置map,后者是定义的构建类型例如 maven/ant/gradle/web/golang 。
代码主体是根据不同的构建类型执⾏不同的构建命令,默认打印信息。
package org.devops
// 构建函数
def Build(buildTools,buildType){
switch(buildType){
case "maven":
sh "${buildTools["maven"]}/bin/mvn clean package"
break
case "gradle":
sh "${buildTools["gradle"]}/bin/gradle build -x test"
break
case "golang":
sh "${buildTools["golang"]}/bin/go "
break
case "web":
sh """ ${buildTools["web"]}/bin/npm install  && ${buildTools["web"]}/bin/npm run build """
break
default :
println("buildType ==> [maven|gralde|golang|web]")
break
}
}
branchName 代码库的分⽀名称
gitHttpURL 代码库的地址
credentialsId 存放凭据ID
EmailUser 函数⽤于发送邮件通知, 接受两个参数:
userEmail  邮件接收⼈(多个使⽤逗号分隔)
status 作业状态(成功、失败)
创建vy
以后把所有的⼯具都放在这⾥⾯
package org.devops
def GetCode(srcType,branchName,gitHttpURL,credentialsId){
灯光控制器if (srcType == "git"){
println("下载代码 --> 分⽀: ${branchName}")
checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]],
extensions: [],
userRemoteConfigs: [[credentialsId: "${credentialsId}",
url: "${gitHttpURL}"]]])
}
}
def EmailUser(userEmail,status){
emailext body: """
隔膜胶水
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<img src="192.168.1.200:8080/static/0eef74bf/images/headshot.png">
<table width="95%" cellpadding="0" cellspacing="0" >                      <tr>
耐寒输送带<td><br />
<b><font color="#0B610B">构建信息</font></b>
</td>
光电眼</tr>
<tr>
<td>
<ul>
<li>项⽬名称:${JOB_NAME}</li>
<li>构建编号:${BUILD_ID}</li>
<li>构建状态: ${status} </li>
<li>项⽬地址:<a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>构建⽇志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
</ul>
</td>
</tr>
马达驱动<tr>
</table>
</body>
</html>  """,
subject: "Jenkins-${JOB_NAME}项⽬构建信息 ",水培鱼缸
to: userEmail
}
最近共享库⽬录结构如下

本文发布于:2024-09-23 02:32:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/225451.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代码   共享   构建   模块   封装   邮件   通知
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议