Jenkins主动选择3个参数的级联选择不起作用

时间:2017-10-31 17:08:47

标签: jenkins groovy jenkins-plugins

我有一个带有3个参数的Jenkins作业(环境,分支,版本)使用Active Choices插件。如果开发人员正在部署到Prod - 我不希望他们能够从主干推送构建。目前,params的依赖性看起来像环境 - >分支 - >版本

当页面加载时,它默认显示 DEV ,这允许从主干或发布部署以及为选择构建的任何工件,但是当我将环境更改为 PROD - 我希望分支刷新只显示发布(它确实如此),但版本不会更新并继续显示来自主干的工件。

环境参数

return[
'DEV:selected',
'QA',
'BIZ',
'DEMO',
'PROD'
]

分支参数(Try / Catch是我在首次加载时可以显示的唯一方法)

try{
    switch(Environment){
        case~/.*PROD.*/:
            return ['release']
            break
    default:
        return ['trunk','release']
        break
    }
} catch (all) {
    return ['trunk','release']
}

版本参数

def content = newURL("https://{{MyArtifactsUri}}/$Branch/").text
assert content, "Empty."
def json = new groovy.json.JsonSlurper().parseText(content)
return json.name.reverse()

1 个答案:

答案 0 :(得分:0)

版本应定义为主动选择反应参数(单选)。

正如我从您的问题中所理解的,版本取决于环境和分支的价值。

您需要编写一些groovy脚本(或使用预定义的Scriptler脚本),该脚本获取Environment和Branch的值,并返回适当的(已过滤的?)可用版本列表供用户选择。