【问题标题】:Jenkins Active Choices Cascading Choice for 3 Parameters Not WorkingJenkins Active Choices 3 个参数的级联选择不起作用
【发布时间】:2017-11-02 01:57:17
【问题描述】:

我有一个使用 Active Choices 插件的 Jenkins 工作,其中包含 3 个参数(环境、分支、版本)。如果开发人员正在部署到 Prod - 我不希望他们能够从主干推送构建。目前params的依赖是这样的Environment -> Branch -> Version

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

环境参数

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()

【问题讨论】:

    标签: jenkins groovy jenkins-plugins


    【解决方案1】:

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

    我从您的问题中了解到,版本取决于环境和分支的值。

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

    【讨论】:

    • 我对“Active Choices Reactive Reference Parameter”的选项是- Input text box - Numbered list - Bullet items list - Formatted HTML - Formatted hidden HTML 需要为每个分支重新评估 URI。
    • 正确,我的意思是反应参数。以上已更正。
    • 这是我已经在使用的类型。看起来这在两个参数之间工作得很好,但如果你让它对一个参数做出反应,这个参数本身就对另一个参数做出反应,那就不行了。我还尝试将 BranchEnvironment 添加到 Version 参数的引用参数中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2022-08-18
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多