Jenkins Pipeline Template Catalogue 只建master和main分支
Jenkins Pipeline Template Catalog Only build master and main branches
我正在尝试设置一个只构建主分支和主分支的管道模板目录。
如果我只定义一个分支名称,它会起作用,例如 master
说我想要 NoTriggerBranchProperty
用于所有 not master
。我的 template.yaml
文件的相关部分:
multibranch:
branchSource:
git:
remote: '${repo}'
credentialsId: '${credentialsId}'
strategy:
$class: NamedExceptionsBranchPropertyStrategy
namedExceptions:
- name: "!master"
props:
- $class: NoTriggerBranchProperty
buildStrategies:
- $class: SkipInitialBuildOnFirstBranchIndexing
根据 docs 我可以附加名称,所以 !master,!main
应该可以,但它没有。它实际上使所有分支都不会在 SCM 更改时触发。
我更进一步,查看了 Cloudbees here 使用的匹配代码,据我所知 !master,!main
应该可以正常工作。我怀疑我的过程中存在逻辑错误,因为我在使用无触发器 属性.
时试图反转分支名称以触发它们
经过整整8个小时的测试终于解决了这个问题
查看 NamedExceptionsBranchPropertyStrategy 代码,很明显 !main,!master
将不起作用,因为 NamedExceptionsBranchPropertyStrategy.isMatch
用作两个名称的 ||
。因此名字,在这个例子中 !main
returns true
因为它是匹配的,所以它打破了整个逻辑链。
相反,解决方案是
multibranch:
branchSource:
git:
remote: '${repo}'
credentialsId: '${credentialsId}'
strategy:
$class: NamedExceptionsBranchPropertyStrategy
namedExceptions:
- name: "master,main"
defaultProperties:
- $class: NoTriggerBranchProperty
buildStrategies:
- $class: SkipInitialBuildOnFirstBranchIndexing
基本上默认不触发,除了master和main这两个命名异常。这是支持仅构建特定分支(两个或更多)而不构建其余分支的方式。
我正在尝试设置一个只构建主分支和主分支的管道模板目录。
如果我只定义一个分支名称,它会起作用,例如 master
说我想要 NoTriggerBranchProperty
用于所有 not master
。我的 template.yaml
文件的相关部分:
multibranch:
branchSource:
git:
remote: '${repo}'
credentialsId: '${credentialsId}'
strategy:
$class: NamedExceptionsBranchPropertyStrategy
namedExceptions:
- name: "!master"
props:
- $class: NoTriggerBranchProperty
buildStrategies:
- $class: SkipInitialBuildOnFirstBranchIndexing
根据 docs 我可以附加名称,所以 !master,!main
应该可以,但它没有。它实际上使所有分支都不会在 SCM 更改时触发。
我更进一步,查看了 Cloudbees here 使用的匹配代码,据我所知 !master,!main
应该可以正常工作。我怀疑我的过程中存在逻辑错误,因为我在使用无触发器 属性.
经过整整8个小时的测试终于解决了这个问题
查看 NamedExceptionsBranchPropertyStrategy 代码,很明显 !main,!master
将不起作用,因为 NamedExceptionsBranchPropertyStrategy.isMatch
用作两个名称的 ||
。因此名字,在这个例子中 !main
returns true
因为它是匹配的,所以它打破了整个逻辑链。
相反,解决方案是
multibranch:
branchSource:
git:
remote: '${repo}'
credentialsId: '${credentialsId}'
strategy:
$class: NamedExceptionsBranchPropertyStrategy
namedExceptions:
- name: "master,main"
defaultProperties:
- $class: NoTriggerBranchProperty
buildStrategies:
- $class: SkipInitialBuildOnFirstBranchIndexing
基本上默认不触发,除了master和main这两个命名异常。这是支持仅构建特定分支(两个或更多)而不构建其余分支的方式。