首页 > 解决方案 > 詹金斯档案 | 多环境的声明阶段

问题描述

我有一个下面的 JenkinsFile 声明性管道是结构-

pipeline{
  agent{}
    stages{
      stage(dev_one){
       steps{
        }
       }
      stage(dev_two){
       steps{
        }
       }
      stage(test_one){
       steps{
        }
       }
      stage(test_two){
       steps{
        }
       }
    }
}

我看到 JPL 脚本中存在冗余,因为您看到 stage(dev_one) 和 stage(test_one) 将具有相同的步骤。我怎样才能重用阶段(dev_one),以便一个阶段可以用于不同的环境。

标签: jenkinsjenkins-pipelinejenkins-declarative-pipeline

解决方案


您可以将重复代码包装到一个函数中,然后使用不同的参数在多个阶段调用该函数。

pipeline{
  agent{}
    stages{
      stage(dev_one){
       steps{
          workOnEnv(this, 'dev_one', <next param>)
        }
       }
      stage(dev_two){
       steps{
          workOnEnv(this, 'dev_two', <next param>)
        }
       }
      stage(test_one){
       steps{
        }
       }
      stage(test_two){
       steps{
        }
       }
    }
}

void workOnEnv(Script script, String env, String param2, ...) {
    script.echo "work on env: $env"

    script.sh ""

    script.step()
}

推荐阅读