我正在尝试为参数化的hudson作业实现以下功能:当用户点击"立即构建"时,他应该会看到三个下拉列表参数,即环境,服务器,端口.我希望下拉是动态的,即在更改环境值时,服务器列表应相应地更改,同样端口的值应根据所选服务器进行更改.
一旦用户进行了最终选择,下拉列表中的所有三个值都将用于将单个值作为参数传递给构建作业.我坚持如何在单个参数中实现这一点并使其动态化.在我的自定义插件中,我扩展了ParameterDefinition类,在其中我有一个静态嵌套类,使用doFillXXXItems()为这三个字段扩展ParameterDescriptor类.环境下拉列表中的值将根据登录的用户名填充.如果有人能帮助我弄清楚如何使下降动态,我真的很感激.我已经尝试过ui-samples插件中的动态下拉列表框,但它在我的情况下不起作用:(
小智 1
您可以继承hudson.model.ChoiceParameterDefinition ,并重写其getChoicesText方法。根据您想要的任何内容返回选项,在您的情况下,您可以从Hudson.getInstance()获取环境。
下面的代码片段显示了如何获取环境变量。
Hudson.getInstance().getGlobalNodeProperties()
.get(EnvironmentVariablesNodeProperty.class).getEnvVars().get(name);
Run Code Online (Sandbox Code Playgroud)