将Jenkins标签设置为构建参数的值,以用于真正动态的节点和基于标签的构建

时间:2016-08-29 18:32:56

标签: jenkins plugins groovy parameters build

是否有可能在基于构建参数的标签值未知的节点上触发Jenkins构建?

我有一份建筑工作,允许我们的开发人员做他们想要的任何类型的构建,包括构建的指定硬件。问题是这个硬件清单总是在变化,我试图消除科技债务。我希望它是唯一必需的是具有devs知道的标签的特定于硬件的节点,并且它们使用字符串参数来匹配该节点标签以针对该硬件构建。他们可能有像Gen1,Gen2,ProtoXYZ这样的标签,谁知道,你知道吗?它不断发展。

我已经看到了一些类似的问题,但对于this one,没有解决方案,而对于this one,我实际上并不确定是什么'在这里继续我还没有触及Groovy,而且我正在努力尽可能多地使用插件和现有的Jenkins功能。

这并不意味着我不会使用Groovy脚本 - 只是因为我不希望使用自定义脚本来混淆该过程。

编辑:

我还在测试它,但它看起来像这个带有插件的单行Groovy脚本," Groovy Label Assignment"似乎工作,但我会在一小时内回来检查:

binding.getVariables().get("HARDWARE");

其中HARDWARE是由作业参数设置的参数。我要检查的一件事是,我是否可以使用此功能混合和匹配已知和未知标签,例如,一个已知选择的小型下拉框,但其中一个选择基本上是"其他,请输入"

编辑:我已经非常疲惫,我用谷歌搜索了自己以前回答的问题,我自己也回答了这个问题。我已经改变了标题以匹配更多搜索引擎友好的内容。原标题是,

  

是否可以在未知的节点上触发Jenkins构建   标签值基于构建参数?

1 个答案:

答案 0 :(得分:0)

好的,这很酷。是的,这是可能的。我确实使用了一个Groovy脚本,但它是一个与插件一起工作的单行程序,因此没有多少被无法听到跟踪,我认为这是可以接受的。

首先,使用plugin's site's instructions,我尝试了这个:

binding.getVariables().get("HARDWARE");

HARDWARE是一个工作参数。它实际上是来自该插件的下拉框,例如,选择参数。要调用此插件,请在安装它之后检查一个名为

的框
  

Groovy脚本,用于限制此项目的运行位置

它与我的一个参数一起工作:

  

Choice1

     

Choice2

     

Choice3

     

$ {CUSTOM_CHOICE}

在作业中,我在设置HARDWARE之前设置了$ {CUSTOM_CHOICE}参数。这允许HARDWARE继承$ {CUSTOM_CHOICE}的值(如果存在)。它不是白痴,但它让我的开发人员能够灵活地使用一些众所周知的选择,或者疯狂地进行实验。我已经确认此功能有效。