如何使用Jenkinsfile禁用Multibranch管道中的分支

时间:2018-03-14 05:17:14

标签: jenkins jenkins-pipeline multibranch-pipeline

我在Jenkins有一个Multi分支管道项目。我想在管道项目中列出一个分支时禁用它。我可以添加一个例外来超越scm触发。但我想禁用所有触发,包括手动触发。如果我使用"禁用此项目"在"构建触发器"在为分支创建的作业中,当我重新加载页面时没有选择该选项(没有可用于单个分支管道的保存/应用按钮)。它只保留在Jenkinsfile中配置的后续配置。

pipelineTriggers([
    snapshotDependencies(),
]),

有没有办法指定"禁用此项目"在Jenkinsfile

2 个答案:

答案 0 :(得分:5)

是的,您无法禁用Jenkins Job的项目,因为多分支管道无法控制更改作业中的设置

阻止分支建立的两种方法。

  

1)停用分支

要控制设置,请转到 PROJECT(要修改设置的项目)>配置>项目(启用高级设置)

enter image description here

“排除分支”中输入分支并保存设置。

  

2)重命名Jenkins文件

如果您无法控制项目设置,那么简单的方法是在项目/分支中重命名Jenkins文件

enter image description here

如果分支/项目中包含“Jenkinsfile”,则此配置将定义为触发构建。因此,重命名它不会触发构建。

希望这会有所帮助..

更新:AFAIK,您无法禁用Jenkisfile的项目,但作为解决方法,您可以按如下方式配置cronjob:

properties([pipelineTriggers([cron('')])])

如果cron中没有配置,则根本不会触发构建。

答案 1 :(得分:2)

您可以执行以下操作:

    stages {
    stage('Build') {
        when { 
            not { 
                branch 'master' 
            }
        }
        steps {
            ...
        }
    }
}

与根本不运行管道完全不一样,但是至少,它运行非常快,并且实际上没有进行构建,这对于使它不失败很有用-例如,如果使用maven / gitflow模式,其中主分支不应多次构建,因为部署会失败...