如何在 Jenkins 管道中实现基于用户的参数可见性切换?

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

我有一个用于 Jenkins 管道的存储库,我为构建管道维护一个分支(我不想为开发人员/QA/产品建立单独的分支)。我想使用这个单一分支为所有开发人员/QA/产品创建单一 Jenkins 管道。根据用户的类型,我想更改管道运行的构建代理。例如:

  • 对于开发者触发的构建:代理应该是构建服务器 1(这应该强制执行)
  • 对于由 QA 触发的构建:代理应该是构建服务器 2(这应该强制执行)
  • 对于 Prod 触发的构建:代理应该是构建服务器 1,2 或 3(用户可以使用任何代理)

对于开发人员/质量检查人员,我不希望他们看到更改构建代理参数的选项,在这种情况下,它应该以某种隐藏的方式强制执行或传递。但对于 Prod,我想提供从三个构建代理中选择任何一个的选项。任何实施过此类案例的人请帮忙。

jenkins jenkins-pipeline jenkins-plugins
1个回答
0
投票

您必须维护开发人员、QA 和产品的列表,然后您可以通过以下 groovy 脚本使用主动选择参数:

import hudson.model.User
def Devs = ['Dev1_email', 'Dev2_email']
def QA = ['qa1_email', 'qa2_email']
def Prod = ['prod1_email', 'prod2_email']
def user = User.current()

if(Devs.contains(user.toString())){
    return ['build-server 1']
}
else if(QA.contains(user.toString())){
    return ['build-server 2']
}
else if(Prod.contains(user.toString())){
    return ['build-server 1', 'build-server 2', 'build-server 3']
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.