如何使用扩展选择参数插件复选框

时间:2014-08-20 19:10:13

标签: jenkins jenkins-plugins jenkins-scriptler

目前我正在使用Choice参数在下拉列表中输入主机名。

  • server1的
  • 服务器2
  • 服务器3

我在属性中包含选定的值。

Server=%Hostname%

此外,我在actions-->Email Notification-->Subject-->Login的帖子构建$Hostname成功中调用了相同的内容。

但我的要求是取而代之的是下拉菜单我需要一个server1,server2和amp;的复选框选项。 server3,以便我可以一次选择多个服务器并构建作业。

此外,我需要在属性和电子邮件主题中包含主机名。但电子邮件主题不应包含实际的主机名(服务器),而必须是不同的名称。

让我们说,

server1 = DEV
server2 = QA

该属性应采用“server1”值,并且电子邮件suject应采用“DEV”。

我正在尝试使用扩展选择参数插件,但我被卡住了,所以任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:5)

扩展选择参数插件是满足此类要求的方法。您需要从下拉列表中选择Extended Choice Parameter,如下所示。

enter image description here

选择该选项后,您会看到另一个名称为Parameter Type的下拉列表,如下面的快照所示。从该下拉列表中选择Multi Select。在Value框中输入服务器名称。逗号()是分隔符

enter image description here

现在,如果在选择一个(或多个)服务器后在* nix系统上运行命令echo "Server: $Hostname",您将在命令输出中获得所有选定的服务器。

现在,为了解决显示名称(例如Dev / QA而不是实际服务器名称)的问题,您显然必须执行一些脚本编写。由于您使用字符串中的服务器名称,因此首先必须使用逗号(,)作为分隔符 拆分字符串以获取单个值(服务器)。然后你将检查每个服务器并为其分配值。 代码,例如:

if ( str eq server1 ) {
    host = QA;
} elsif ( str eq server 2 ) {
    host = Dev;
} and so on...

我在Perl写了一个类似的脚本。您可以使用您选择的语言(bash,batch etc。)

要在邮件的主题行中传递这些变量,您必须按照Slav的建议使用EnvInject Plugin。您可以在运行 if ... else 代码时在某个文件中写入值(QA / Dev),以便以后可以由EnvInject插件使用。以防万一,如果您想要一种替代方式,您可以根据您的风格简单地使用系统的邮件命令。

答案 1 :(得分:0)

使用扩展选择参数,您可以通过选择名为"参数类型"的值来在下拉/多选/复选框/单选按钮之间切换。如果您没有看到,那么您可能拥有该插件的旧版本。

关于问题的第二部分:您将不得不在脚本中进行映射,使用EnvInject插件注入,然后在电子邮件中使用注入的值