Jenkins 詹金斯:如何跳过多分支管道中的特定阶段?

Jenkins 詹金斯:如何跳过多分支管道中的特定阶段?,jenkins,jenkins-pipeline,multibranch-pipeline,jenkins-declarative-pipeline,Jenkins,Jenkins Pipeline,Multibranch Pipeline,Jenkins Declarative Pipeline,我们所有的分支机构都有“舞台(建造)”。我们如何暂时跳过这个阶段,在多分支管道中的所有分支上运行呢。我知道一个解决方案是在条件处于阶段时使用,并要求所有开发人员将该分支拉入他们的分支。但这需要大量的工作和协调。相反,我正在寻找一种全局配置,在这种配置中,我们可以简单地按名称跳过任何分支上的阶段。这听起来像是您将Jenkins文件与代码放在一起,但希望从管理的角度更改Jenkins文件的运行方式 您可以将此阶段存储在单独的(版本控制风格的首选项)存储库中。在执行阶段之前,先在存储库中加载,然后加载

我们所有的分支机构都有“舞台(建造)”。我们如何暂时跳过这个阶段,在多分支管道中的所有分支上运行呢。我知道一个解决方案是在条件处于阶段时使用,并要求所有开发人员将该分支拉入他们的分支。但这需要大量的工作和协调。相反,我正在寻找一种全局配置,在这种配置中,我们可以简单地按名称跳过任何分支上的阶段。

这听起来像是您将Jenkins文件与代码放在一起,但希望从管理的角度更改Jenkins文件的运行方式

您可以将此阶段存储在单独的(版本控制风格的首选项)存储库中。在执行阶段之前,先在存储库中加载,然后加载脚本文件,并在阶段中执行该文件中定义的方法


或者,向生成作业添加一个布尔值的参数(假设您没有通过Jenkins文件中的选项设置参数),以使用或跳过该阶段,并且您可以在需要打开或关闭项目配置时修改该配置。这种方法怎么样

  stage('build') { 

    if(buildFlag=="disable"){
      //jump to next stage
      return;
    }
    //do something
  } 
buildFlag可能是

  • 同一管道中的简单var
  • 在jenkins中配置的全局变量。您可以将禁用临时设置为跳过构建阶段,并更改为启用以恢复正常
您还可以将状态设置为失败,而不是返回:

currentBuild.result = 'FAILURE'

或者抛出异常并退出整个作业或管道。

这是不可能的。WorkflowScript:79:不是有效的阶段部分定义:“if(buildFlag){您创建了变量吗?此代码段在管道脚本或声明性管道中工作。不要因为您的无能而责怪其他人(否决)。我不责怪您,但它不工作,您必须将其包含在阶段('stage name'){steps{script{if(condition){}}}