groovy 将Jenkins阶段放入函数定义时出错

yhived7q  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(148)

我 正在 使用 脚本 化 管道 , 并 试图 将 我 的 舞台 放在 一 个 函数 内 , 如下 所 示 。

node{
          if(value=="true")
             {
              def func(){
                       stage ('first stage')
               }
              }      
              fun() #calling it here. 

}

中 的 每 一 个
它 不 工作 。 它 说 这里 不 需要 方法 定义
此处 不 需要 方法 定义 。 请 在 适当 的 位置 定义 方法 , 或者 尝试 改用 区块/闭包 。
。 如何 执行 此 操作 ? 无法 定义 外部 节点 块 , 因为 管道 正在 特定 节点 上 运行 。

6ovsh4lw

6ovsh4lw1#

不执行阶段,可以从函数返回阶段配置。请参阅以下内容。

node {
    stage('Stage 1') {
       echo "This stage executed always"
    }
    def value = true
    // Lets execute stage 2
    if(value == true) {
        generateStage("Stage 2").call()
    }
    
    stage('Stage3') {
        echo "Stage 3"
    }
}

def generateStage(name) {
    return {
        stage("Stage ${name}") {
            echo "Stage ${name}"
        }
    }
}

相关问题