繁体   English   中英

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

[英]How to disable branch in Multibranch pipeline with Jenkinsfile

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

pipelineTriggers([
    snapshotDependencies(),
]),

有没有办法在Jenkinsfile中指定“禁用此项目”

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

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

1) 禁用分支

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

在此输入图像描述

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

2) 重命名Jenkinsfile

如果您无法控制项目设置,则可以轻松地在项目/分支中重命名Jenkins文件

在此输入图像描述

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

希望这可以帮助..

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

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

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

你可以这样做:

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

这与完全不运行管道并不完全相同,但至少,它运行得非常快,并且实际上并没有进行构建,这对于让它不会失败很有用 - 比方说,如果你使用的是maven / gitflow模式,其中主分支不应该多次构建,因为部署将失败...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM