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

时间:2018-07-18 15:37:24

标签: jenkins jenkins-pipeline multibranch-pipeline jenkins-declarative-pipeline

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

2 个答案:

答案 0 :(得分:1)

听起来好像您将Jenkinsfile放在代码的旁边,但是想要从管理的角度更改Jenkinsfile的运行方式。

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

或者,在构建作业中添加一个参数(假定您不是通过Jenkinsfile中的选项来设置参数),该参数是布尔值,可以使用或跳过该阶段,并且可以在想要将其打开时修改项目配置开启或关闭

答案 1 :(得分:1)

这种方法呢?

  stage('build') { 

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

buildFlag 可能是

  • 同一管道中的简单var
  • 在jenkins中配置的全局变量。您可以暂时将 disabled 设置为跳过 build 阶段,然后更改为 enabled 以恢复正常

还可以将状态设置为失败,而不是返回:

currentBuild.result = 'FAILURE'

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