如何定义自定义管道指令?

时间:2017-06-29 08:51:54

标签: jenkins groovy jenkins-pipeline

例如:

pipeline {
   customDirective {
      sh "env"
      ..
   }
}

2 个答案:

答案 0 :(得分:2)

目前无法做到这一点。您只能通过Shared Library定义自定义管道步骤,并在阶段/步骤部分和帖子部分的条件块中使用它们。如果您出于任何原因需要进行更多自定义,则必须查看Scripted pipeline syntax。它允许使用Groovy的大多数功能,因此非常灵活。

答案 1 :(得分:0)

这有效:

customDirective.groovy(共享库)

def call(Closure body) {
     def config = [:]
     body.resolveStrategy = Closure.DELEGATE_FIRST
     body.delegate = config
     body()
     config.script()
}

Jenkinsfile

customDirective {
     url="http://something.another.com"
     title="The Title"
     script = {
          sh "env"
     }
 }