jenkins pipeline之流水线脚本版本化学习二(简化版)

上篇,继续看看共享库怎么写,实际使用中,不可能只有一个函数,多个时,怎么调用呢?

先看看官网中,对共享库的几个文件夹的说法

src 目录应该看起来像标准的 Java 源目录结构。当执行流水线时,该目录被添加到类路径下。

vars 目录定义可从流水线访问的全局变量的脚本。 每个 *.groovy 文件的基名应该是一个 Groovy (~ Java) 标识符, 通常是 camelCased。 匹配 *.txt, 如果存在, 可以包含文档, 通过系统的配置标记格式化从处理 (所以可能是 HTML, Markdown 等,虽然 txt 扩展是必需的)。

这些目录中的 Groovy 源文件 在脚本化流水线中的 “CPS transformation” 一样。

resources 目录允许从外部库中使用 libraryResource 步骤来加载有关的非 Groovy 文件。 目前,内部库不支持该特性。

根目录下的其他目录被保留下来以便于将来的增强。

但在脚本式的流水线中,我们一般只将脚本写入vars就行,通过library全局调用。注意,是全局

在上一个实例中,我们在vars的sayHello中定义了一个call方法,该方法解释如下:

call 方法 允许全局变量以一种类似于步骤的方式被调用

在流水线中可以直接使用

但如果在该脚本中多加了两个函数,如下:

#!/usr/bin/env groovy
def call(String name = ‘human‘) {
    // Any valid steps can be called from this code, just like in other
    // Scripted Pipeline
    echo "Hello, ${name}."
}


def info(message) {
    echo "INFO: ${message}"
}

def warning(message) {
    echo "WARNING: ${message}"
}

那么在流水线中怎么调用呢,

也很简单如下:

sayHello()
sayHello.info "staring"

结果如下:

[Pipeline] echo
Hello, human.
[Pipeline] echo
INFO: staring
[Pipeline] stage

相关推荐