Jenkins 共享库1

  • Jenkins 共享库是除了 Jenkins 插件外,另一种扩展 Jenkins 流水线的技术。通过它,可以轻松地自定义步骤,还可以对现有的流水线逻辑进行一定程度的抽象与封装

  • 共享库官方文档 点击 官网

  • 本文示例代码:点击代码

  • JenkinsPipelineUnit: PipelineUnit

  • 不再介绍

  • 全局共享库

  • Manage Jenkins » Configure System » Global Pipeline Libraries 必要时可以配置许多库。

  • 安装插件

Jenkins 共享库1_第1张图片

配置代码路径

Jenkins 共享库1_第2张图片
Jenkinsfile 需要使用 @Library 注解, 指定库的名字:

  • @Library(‘my-shared-library’) _/* Using a version specifier, such as branch, tag, etc
  • /@Library(‘[email protected]’) _/ Accessing multiple libraries with one statement
  • */@Library([‘my-shared-library’, ‘otherlib@abc1234’]) _

Jenkins 共享库1_第3张图片
Jenkins 共享库1_第4张图片

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

如果使用分支

  • 官网实例
  • 它将会执行一个不同的流水线,这取决于构建号是奇数还是偶数
    Jenkins 共享库1_第5张图片

Jenkinsfile


// vars/evenOrOdd.groovy
@Library('my-shared-library@shared-B') _
evenOrOdd(currentBuild.getNumber())

Jenkins 共享库1_第6张图片
Jenkins 共享库1_第7张图片
Jenkins 共享库1_第8张图片

你可能感兴趣的:(Jenkins)