我在Jenkins有一个Multi分支管道项目。我想在管道项目中列出一个分支时禁用它。我可以添加一个例外来超越scm触发。但我想禁用所有触发,包括手动触发。如果我使用"禁用此项目"在"构建触发器"在为分支创建的作业中,当我重新加载页面时没有选择该选项(没有可用于单个分支管道的保存/应用按钮)。它只保留在Jenkinsfile中配置的后续配置。
pipelineTriggers([
snapshotDependencies(),
]),
有没有办法指定"禁用此项目"在Jenkinsfile
答案 0 :(得分:5)
是的,您无法禁用Jenkins Job的项目,因为多分支管道无法控制更改作业中的设置。
阻止分支建立的两种方法。
1)停用分支
要控制设置,请转到 PROJECT(要修改设置的项目)>配置>项目(启用高级设置)
在“排除分支”中输入分支并保存设置。
2)重命名Jenkins文件
如果您无法控制项目设置,那么简单的方法是在项目/分支中重命名Jenkins文件。
如果分支/项目中包含“Jenkinsfile”,则此配置将定义为触发构建。因此,重命名它不会触发构建。
希望这会有所帮助..
更新:AFAIK,您无法禁用Jenkisfile的项目,但作为解决方法,您可以按如下方式配置cronjob:
properties([pipelineTriggers([cron('')])])
如果cron中没有配置,则根本不会触发构建。
答案 1 :(得分:2)
您可以执行以下操作:
stages {
stage('Build') {
when {
not {
branch 'master'
}
}
steps {
...
}
}
}
与根本不运行管道完全不一样,但是至少,它运行非常快,并且实际上没有进行构建,这对于使它不失败很有用-例如,如果使用maven / gitflow模式,其中主分支不应多次构建,因为部署会失败...