我正在尝试将阶段传递给共享库中定义的自定义步骤。 我要在这里做的是重用所有配置(代理,选项,触发器,环境,工具),因为它们始终是相同的,而阶段则不同。
所以我的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
以便在其他地方执行?