我可以将声明式管道的整个阶段包装为groovy库函数吗?

JF *_*ier 5 groovy jenkins jenkins-pipeline

我想添加类似

myStage()
Run Code Online (Sandbox Code Playgroud)

到Jenkinsfile。myStage()在共享库中定义,并且包含整个阶段。这可能吗?我读到我可以将单个步骤和整个管道放入groovy函数中,但是阶段是否也可能?

Lea*_*lla 7

声明式管道是不可能的。

声明式管道的其他部分可能可以通过库进行扩展,例如options,但据说

例如,任何包含实际步骤执行的东西(所以步骤、发布、何时(部分是因为 when 表达式,部分是因为它会让人痛苦)、阶段和阶段(因为阶段包含步骤和阶段)包含阶段)将不被支持。

请参阅https://issues.jenkins-ci.org/browse/JENKINS-49135

此外, 从Declarative Pipeline 1.2 开始正式支持库中的整个管道