1 Star 0 Fork 0

devops-samples/global-shared-library

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

global-shared-library

当有大量的pipeline项目构建任务,有很多代码是重复的,这时需要提取和复用共同的逻辑。 其实pipeline本质就是一个Groovy脚本,所以可以在pipeline中自定义函数,并使用Groovy语言自带的特性。

Shared library开发步骤

  1. 创建目录结构
    mkdir -p resources/org/foo src/org/foo vars
    (root)
    +- src                     # Groovy source files
    |   +- org
    |       +- foo
    |           +- Bar.groovy  # for org.foo.Bar class
    +- vars
    |   +- foo.groovy          # for global 'foo' variable
    |   +- foo.txt             # help for 'foo' variable
    +- resources               # resource files (external libraries only)
    |   +- org
    |       +- foo
    |           +- bar.json    # static helper data for org.foo.Bar
  • vars 目录下的全局变量可以直接在pipeline中使用,即当写sayHello('world'),实际调用的是sayHello.groovy中的call函数

  • src 目录是标准的Java源码结构,目录中的类被称为类库(Library class),而 @Library('global-shared-library@master') 就是一次性静态加载src目录下所有代码到classpath中

  • resources目录中是静态资源文件

  1. 写shared library
    在目录vars中的文件就能够在pipeline中引用 如:

    // vars/sayHello.groovy
    def call(String name = 'human') {
        // Any valid steps can be called from this code, just like in other
        // Scripted Pipeline
        echo "Hello, ${name}."
    }
  2. 将该文件目录提交至Git(SVN等)仓库

Shared library使用步骤

  1. Manage Jenkins ==> Configure System ==>Global Pipeline Libraries点击Add添加Global Pipeline Libraries.
    Name属性不应太长,在pipeline中是通过关键字library加Name属性来引用library, 然后添加shared library的SCM信息.

  2. 在Jenkins文件中添加library关键词引用shared library,如下所示:
    Jenkinsfile

    @Library('global-shared-library@master') _
    
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    sayHello('World')
                }
            }
        }
    }

文档

https://jenkins.io/doc/book/pipeline/shared-libraries/
http://groovy-lang.org/single-page-documentation.html
https://www.jianshu.com/p/cc32441ae3b6

空文件

简介

global-shared-library 展开 收起
Groovy 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Groovy
1
https://gitee.com/devops-samples/global-shared-library.git
git@gitee.com:devops-samples/global-shared-library.git
devops-samples
global-shared-library
global-shared-library
master

搜索帮助