返回管道的Jenkins脚本?

返回管道的Jenkins脚本?,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,是否可以通过函数调用在groovy脚本中创建管道 如果我有一个脚本,例如: def call() { pipeline { agent any stages { ... } } } 然后我可以在Jenkins中调用此脚本: @Library('foo') _ foo() 我看到管道的各个阶段都在运行 但是,如果我更改脚本,使管道步骤位于call()方法之外并位于其自己的方法中: def build() { pipeline { agent any

是否可以通过函数调用在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等)创建单独的脚本。

您可以从正在运行的作业构建作业,请参阅。