詹金斯脚本返回管道?

时间:2019-11-18 01:47:52

标签: jenkins groovy jenkins-pipeline

是否可以通过函数调用在groovy脚本中创建管道?

如果我有一个脚本,例如:

def call() {
  pipeline {
    agent any
    stages { ... }
  }
}

然后我可以使用以下方法在Jenkins中调用此脚本:

@Library('foo') _

foo()

我看到管道在所有阶段都在运行。

但是,如果我更改脚本,以便流水线步骤不在call()方法之外并且在其自己的方法中:

def build() {
  pipeline {
    agent any
    stages {
      ...
    }
  }
}

并通过詹金斯调用它:

@Library('foo') _

foo.build()

然后出现以下错误:

java.lang.NoSuchMethodError: No such DSL method 'agent' found among steps [...]

我真的很想拥有一个带有build(),deploy(),release()等方法的脚本,每个方法都定义自己的管道,但是似乎只能通过call()创建一个管道。方法,并且每个管道都需要有单独的脚本(build.groovy,deploy.groovy等)。

0 个答案:

没有答案