【问题标题】:Jenkins Dynamic parameters based on previously selected parameter valueJenkins 动态参数基于先前选择的参数值
【发布时间】:2013-03-17 05:42:26
【问题描述】:

这里我基本上是在找一个依赖参数。

假设我在构建参数部分有两个下拉菜单。根据从第一个下拉列表中选择的值,可能的默认值 我希望第二个下拉列表的值有所不同。

是否有任何插件或方法可以有效地处理此要求?

【问题讨论】:

  • 如果我希望第二个下拉菜单从 shell 脚本的输出中获取值,我该怎么做?

标签: jenkins hudson jenkins-plugins hudson-plugins


【解决方案1】:

这里是例子,我想在寻找这个问题的时候找到;

这是使用 Jenkins 作业 DSL 创建主动选择反应参数的方法。

activeChoiceReactiveParam('PARAMETER_NAME') {
    description('Parameter description')
    filterable()
    choiceType('SINGLE_SELECT')
    groovyScript {
        script('return [ANOTHER_PARAMETER + ".suffix", ANOTHER_PARAMETER + ".suffix2"]')
        fallbackScript('return ["NotFound"]')
    }
    referencedParameter('ANOTHER_PARAMETER')
}

注意:如果通过 DSL 导入作业不起作用,只需“配置”和“保存”即可。有个bug:JENKINS-42655

【讨论】:

    【解决方案2】:

    让我们保持简单,这是实现所需的分步过程。
    1.在您的 Jenkins 中安装 Active Choices 插件。
    2.添加一个主动选择参数

    1. 添加一个主动选择反应参数。

    4.点击应用,然后点击保存。
    完成。 !!!
    如果遇到任何问题,请发表评论。

    【讨论】:

      【解决方案3】:

      这应该可以让您单选、多选并在关卡中进行操作 https://wiki.jenkins-ci.org/display/JENKINS/Active+Choices+Plugin

      【讨论】:

        【解决方案4】:

        此处提供了具有此功能(以及更多功能)的新插件:https://wiki.jenkins-ci.org/display/JENKINS/Active+Choices+Plugin

        wiki 页面包含几个使用示例和代码

        【讨论】:

          【解决方案5】:

          这正是您正在寻找的: https://github.com/biouno/uno-choice-plugin/wiki/Uno-Choice-Cascade-Dynamic-Choice-Parameter

          它似乎是一个隐藏的宝石,到目前为止还没有在任何类似的问题中找到它。

          【讨论】:

          【解决方案6】:

          我没用过,但看起来下面的插件可以做你想做的事:

          一个允许两个选择元素的 Jenkins 参数插件。第二个选择根据为第一个选择所做的选择填充值。

          https://github.com/tekante/Dynamic-Jenkins-Parameter/wiki

          【讨论】:

          • 似乎非常有限,第一个下拉列表中只允许两个选择,因此第二个下拉列表中只有两个替代列表。
          • 它可以在这个插件中执行 Groovy 吗?
          【解决方案7】:

          This 是你想要达到的目标吗?

          那么你可以继承hudson.model.ChoiceParameterDefinition,并重写它的getChoicesText方法。根据您的需要返回选项,在您的情况下,您可以从Hudson.getInstance() 获取环境。

          sn-ps 下面展示了如何获取环境变量。

          Hudson.getInstance().getGlobalNodeProperties()
                 .get(EnvironmentVariablesNodeProperty.class).getEnvVars().get(name);
          

          Here 是类似的问题。

          【讨论】:

          • 问题是关于根据同一表单上的参数更改列表。我不确定是否有一种简单的方法可以实现这一点,但我很想看到一些关于如何做到这一点的示例代码。您(和链接的答案)显示的方式使用在其他地方定义的现有信息,它不会根据相同形式的另一个下拉菜单动态更改选择。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多