Jenkins角色策略插件和multibranch管道

问题描述 投票:1回答:2

我们有两种类型的项目,自由式和多分支管道。我希望有一个developer角色来获得对作业的读访问权,分析管道日志和归档工件。对于自由风格的项目工作很好,但对于多分支,开发人员角色中的用户看不到任何内容,显示消息“此文件夹为空”并且未显示触发的构建。请问有人可以点亮吗?

一些截图配置:qazxsw poi qazxsw poi

jenkins jenkins-plugins jenkins-pipeline devops
2个回答
0
投票

您可以使用单个Jenkins文件创建2个不同的作业,其中分支“develop”执行特定任务(sonarqube,单元测试等)。 'release'分支执行集成任务。

例:

Global roles

看看这个Project roles作为参考


0
投票

我有同样的问题,发现不是完美的解决方案,但它是有效的。

一个要求:GIT中的分支命名应该是持久的,带有额外的前缀。例如: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}" } 。然后,您可以通过此前缀值过滤掉它。了解更多link

作为输入参数,您可以在其中包含项目和多分支管道。例如:

  • Product1 - > Multibranch_pipeline_Product1 - >带有前缀feat/branchNamebranch naming in git flowfeat等的不同分支。(例如:buginfra等)
  • Product2 - > Multibranch_pipeline_Product2 - >带有前缀infra/PRJ-135-reciepts-issuesfeat/PRJ-337-new-customerfeat等的不同分支。(例如:buginfra等)

并且您想为不同的用户分开它:

  • Developer1 - 仅访问多分支管道中的Project1和分支
  • Developer2 - 只访问Project2并在multibranch管道内分支
  • 开发人员 - 访问Project 1和Project 2多分支管道

因此,您需要在基于角色的插件中进行以下配置:

项目角色:

  • Product1模式 - infra/PRJ-876-new-env
  • Product2模式 - feat/PRJ-999-entity-creation

哪里:

  • ^Product1*|.*_Product1*|(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*) - 将访问文件夹^Product2*|.*_Product2*|(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*)
  • ^Product1* - 将允许访问文件夹(multibranch项目) - Product1
  • .*_Product1* - 将在这个多分支项目中访问带有前缀Multibranch_pipeline_Product2(.*)feat(.*)|(.*)bug(.*)|(.*)hotfix(.*)|(.*)infra(.*)|(.*)develop(.*)featbughotfix的所有分支。

你应该为Product2做同样的事情。

总而言之,您应该: - Developer1具有角色Product1 - Developer2具有角色Product2 - Developer3具有角色,Product1和Product2

我测试了这个解决方案,并且这样的配置权限不相交(Developer1将无权访问Product2中的分支,而Developer2将无法访问Product1中的分支)

© www.soinside.com 2019 - 2024. All rights reserved.