Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于先前选择的参数值的Jenkins动态参数_Jenkins_Hudson_Jenkins Plugins_Hudson Plugins - Fatal编程技术网

基于先前选择的参数值的Jenkins动态参数

基于先前选择的参数值的Jenkins动态参数,jenkins,hudson,jenkins-plugins,hudson-plugins,Jenkins,Hudson,Jenkins Plugins,Hudson Plugins,这里我基本上是在寻找一个依赖参数 假设在构建参数部分有两个下拉列表。根据从第一个下拉列表中选择的值,选择可能的默认值 我希望第二个下拉列表的值有所不同 是否有任何插件或方法可以有效地处理此需求?是您想要实现的吗 然后您可以继承hudson.model.ChoiceParameterDefinition,并重写其方法getChoiceText。根据需要返回选项,在您的情况下,可以从Hudson.getInstance()获取环境 下面的代码片段显示了如何获取环境变量 Hudson.getInsta

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

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

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

是您想要实现的吗

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

下面的代码片段显示了如何获取环境变量

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

是类似的问题。

我没有使用过它,但看起来下面的插件可能会满足您的需要:

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


这正是您要寻找的:


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

这里提供了一个具有此功能(以及更多)的新插件:


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

,这应该可以实现单选、多选和分级操作
让我们保持简单,下面是实现所需目标的一步一步的过程。
1.在Jenkins中安装Active Choices插件。
2.添加一个活动的选项参数

  • 添加主动选择无功参数。
  • 4.单击应用,然后单击保存。

    完成了
    如果遇到任何问题,请发表评论。

    以下是我在寻找此问题时希望找到的示例

    下面是使用Jenkins job 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导入作业不起作用,只需“配置”和“保存”。有一个错误:

    问题是基于同一表单上的参数更改列表。我不确定是否有一个简单的方法来实现这一点,但我希望看到一些关于如何做到这一点的示例代码。您(以及链接的答案)显示的方式使用了其他地方定义的现有信息,它不会根据相同形式的另一个下拉列表动态更改选项。似乎非常有限,在第一个下拉列表中只允许两个选项,因此,第二个下拉列表只有两个备选列表。在这个插件中可能执行Groovy吗?如果我想让第二个下拉列表从shell脚本的输出中获取值,我该怎么做?可能有点晚了,但如果其他人需要,正如插件中所述,与Jenkins社区共享并正式重命名为