feat/branchName
。然后你可以通过这个前缀值来过滤它。更多关于git flow中分支命名的信息请查看分支命名。Product1 -> Multibranch_pipeline_Product1 -> 不同的分支
带有前缀 feat
, bug
, infra
, 等等。 (例如:
infra/PRJ-135-reciepts-issues
, feat/PRJ-337-new-customer
,等等)
Product2 -> Multibranch_pipeline_Product2 -> 不同的分支
带有前缀 feat
, bug
, infra
, 等等。 (例如:
infra/PRJ-876-new-env
, feat/PRJ-999-entity-creation
,等等)
Product1 pattern -
^Product1*|.*_Product1*|(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*)
Product2 pattern -
^Product2*|.*_Product2*|(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*)
^Product1*
- 将允许访问文件夹Product1
.*_Product1*
- 将允许访问文件夹(多分支项目)- Multibranch_pipeline_Product2
(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*)
- 将允许访问此多分支项目中具有前缀feat
或bug
或hotfix
或infra
或develop
的所有分支。对于Product2,您也应该这样做。
总之,您应该有: - Developer1拥有Product1角色 - Developer2拥有Product2角色 - Developer3具有Product1和Product2两个角色
我测试了这个解决方案,并且使用这样的配置权限不会相互交叉(Developer1将无法访问Product2中的分支,Developer2将无法访问Product1中的分支)。
^my-job-name(.*)
来匹配作业下的所有分支。 - zoidberg您可以使用单个Jenkinsfile创建两个不同的作业,其中分支“develop”执行特定任务(如SonarQube、单元测试等)。而“release”分支则执行集成任务。
例如:
stage 'Init'
node {
checkout scm
sh 'echo $ BRANCH_NAME'
}
if (env.BRANCH_NAME == 'develop') {
stage 'Only on develop'
println 'This happens only on develop'
} else {
stage 'Other branches'
println "Current branch $ {env.BRANCH_NAME}"
}
请将此链接作为参考