Is it possible to create a pipeline inside a groovy script via a function call?
If I have a script such as:
def call() { pipeline { agent any stages { ... } } } then I can call this script in Jenkins with:
@Library('foo') _ foo() And I see the pipeline running with all of its stages.
But if I change the script so that the pipeline step is outside of the call() method and in its own method:
def build() { pipeline { agent any stages { ... } } } And call it via Jenkins:
@Library('foo') _ foo.build() then I get the following error:
java.lang.NoSuchMethodError: No such DSL method 'agent' found among steps [...] I'd really like to have the one script with build(), deploy(), release(), etc methods, each defining their own pipeline, but it seems that a pipeline can only be created via the call() method, and I'll need to have separate scripts for each pipeline (build.groovy, deploy.groovy, etc).