如何使用 Jenkinsfile 禁用多分支管道中的分支
How to disable branch in Multibranch pipeline with Jenkinsfile
我在 Jenkins 中有一个多分支管道项目。我想在管道项目中列出一个分支时禁用它。我可以添加一个异常来超越 scm 触发。但我想禁用所有触发,包括手动触发。如果我在为分支创建的作业中使用 "Build triggers" 下的 "Disable this project",则在我重新加载页面时不会选择该选项(没有可用于单个分支管道的 save/apply 按钮)。它只保留在 Jenkinsfile 中配置的以下配置。
pipelineTriggers([
snapshotDependencies(),
]),
有没有办法在 Jenkinsfile
中指定 "Disable this project"
是的,您无法从 Jenkins 作业中禁用项目,因为多分支管道无法控制更改作业中的设置。
阻止分支建立的两种方法。
1) Disable the Branch
要控制设置,请转至 PROJECT(您要修改设置的项目)> 配置 > 项目(启用高级设置)
在"Exclude branch"中输入分支并保存设置
2) Rename Jenkinsfile
如果您无法控制项目设置,简单的方法是重命名 project/branch.
中的 Jenkinsfile
此配置将定义在 branch/project 中包含 "Jenkinsfile" 时触发构建。因此,重命名它不会触发构建。
希望这对您有所帮助..
更新:据我所知,您无法从 Jenkisfile 禁用该项目,但作为解决方法,您可以按如下方式配置 cronjob:
properties([pipelineTriggers([cron('')])])
如果 cron 中没有配置,则构建根本不会触发。
你可以这样做:
stages {
stage('Build') {
when {
not {
branch 'master'
}
}
steps {
...
}
}
}
这与 运行 管道完全不一样,但至少,它运行得非常快,实际上并不进行构建,这对于确保它不会失败很有用- 比如说,如果你使用的是 maven / gitflow 模式,那么 master 分支不应构建多次,因为部署会失败...
我在 Jenkins 中有一个多分支管道项目。我想在管道项目中列出一个分支时禁用它。我可以添加一个异常来超越 scm 触发。但我想禁用所有触发,包括手动触发。如果我在为分支创建的作业中使用 "Build triggers" 下的 "Disable this project",则在我重新加载页面时不会选择该选项(没有可用于单个分支管道的 save/apply 按钮)。它只保留在 Jenkinsfile 中配置的以下配置。
pipelineTriggers([
snapshotDependencies(),
]),
有没有办法在 Jenkinsfile
中指定 "Disable this project"是的,您无法从 Jenkins 作业中禁用项目,因为多分支管道无法控制更改作业中的设置。
阻止分支建立的两种方法。
1) Disable the Branch
要控制设置,请转至 PROJECT(您要修改设置的项目)> 配置 > 项目(启用高级设置)
在"Exclude branch"中输入分支并保存设置
2) Rename Jenkinsfile
如果您无法控制项目设置,简单的方法是重命名 project/branch.
中的 Jenkinsfile此配置将定义在 branch/project 中包含 "Jenkinsfile" 时触发构建。因此,重命名它不会触发构建。
希望这对您有所帮助..
更新:据我所知,您无法从 Jenkisfile 禁用该项目,但作为解决方法,您可以按如下方式配置 cronjob:
properties([pipelineTriggers([cron('')])])
如果 cron 中没有配置,则构建根本不会触发。
你可以这样做:
stages {
stage('Build') {
when {
not {
branch 'master'
}
}
steps {
...
}
}
}
这与 运行 管道完全不一样,但至少,它运行得非常快,实际上并不进行构建,这对于确保它不会失败很有用- 比如说,如果你使用的是 maven / gitflow 模式,那么 master 分支不应构建多次,因为部署会失败...