通过阶段作为对Jenkins Pipeline共享库的关闭

时间:2018-08-22 18:17:18

标签: jenkins jenkins-pipeline

我正在尝试将阶段传递给共享库中定义的自定义步骤。 我要在这里做的是重用所有配置(代理,选项,触发器,环境,工具),因为它们始终是相同的,而阶段则不同。

所以我的Jenkinsfile看起来可能像这样:

master({
    stages {
        stage ('Checkout') {
            steps {
                ...
            }
        }
    }
})

自定义步骤master如下所示:

def call(Closure body) {
    pipeline {
        agent any

        options {
            ...
        }

        triggers {
            ...
        }

        environment {
            ...
        }

        tools {
            ...
        }

        body()
    }
}

但是它失败,并出现以下错误。

groovy.lang.MissingPropertyException: No such property: any for class: master

这似乎是一些后续错误。如果我在master而不是body()内添加一个阶段,那么它将起作用。

当我移除stages周围的大括号时,它说java.lang.NoSuchMethodError: No such DSL method 'stages' found among steps

是否可以传递stages以便在其他地方执行?

0 个答案:

没有答案