【问题标题】:How to use Extended Choice Parameter plugin for check box如何为复选框使用扩展选择参数插件
【发布时间】:2014-08-20 19:10:13
【问题描述】:

目前我正在使用 Choice 参数在下拉菜单中输入主机名,如下所示。

  • 服务器1
  • 服务器2
  • 服务器3

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

Server=%Hostname%

我也在后期构建 actions-->Email Notification-->Subject-->Login 成功为 $Hostname 调用相同的内容。

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

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

比方说,

server1 = DEV
server2 = QA

属性应采用“server1”值,电子邮件主题应采用“DEV”。

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

【问题讨论】:

    标签: jenkins jenkins-plugins jenkins-scriptler


    【解决方案1】:

    Extended Choice Parameter 插件是满足这种要求的方式。您需要从下拉列表中选择Extended Choice Parameter,如下所示。

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

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

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

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

    不久前我用 Perl 写了一个类似的脚本。您可以使用您选择的语言(bash、批处理等)

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-04
        相关资源
        最近更新 更多