-
Jenkins 共享库是除了 Jenkins 插件外,另一种扩展 Jenkins 流水线的技术。通过它,可以轻松地自定义步骤,还可以对现有的流水线逻辑进行一定程度的抽象与封装
-
共享库官方文档 点击 官网
-
本文示例代码:点击代码
-
JenkinsPipelineUnit: PipelineUnit
-
不再介绍
-
全局共享库
-
Manage Jenkins » Configure System » Global Pipeline Libraries 必要时可以配置许多库。
-
安装插件
配置代码路径
Jenkinsfile 需要使用 @Library 注解, 指定库的名字:
- @Library(‘my-shared-library’) _/* Using a version specifier, such as branch, tag, etc
- /@Library(‘my-shared-library@1.0’) _/ Accessing multiple libraries with one statement
- */@Library([‘my-shared-library’, ‘otherlib@abc1234’]) _
// var/generatePipeline.groovy
def call(String lang){
if (lang == 'java') {
pipeline {
agent any
stages {
stage('java') {
steps {
sh 'echo java'
}
}
}
}
} else if (lang == 'node'){
pipeline {
agent any
stages {
stage('node') {
steps {
sh 'echo node'
}
}
}
}
}
//其他代码
}
// Jenkinsfile
@Library('my-shared-library') _
generatePipeline('node')
如果使用分支
- 官网实例
- 它将会执行一个不同的流水线,这取决于构建号是奇数还是偶数
Jenkinsfile
// vars/evenOrOdd.groovy
@Library('my-shared-library@shared-B') _
evenOrOdd(currentBuild.getNumber())