是否有可能在基于构建参数的标签值未知的节点上触发Jenkins构建?
我有一份建筑工作,允许我们的开发人员做他们想要的任何类型的构建,包括构建的指定硬件。问题是这个硬件清单总是在变化,我试图消除科技债务。我希望它是唯一必需的是具有devs知道的标签的特定于硬件的节点,并且它们使用字符串参数来匹配该节点标签以针对该硬件构建。他们可能有像Gen1,Gen2,ProtoXYZ这样的标签,谁知道,你知道吗?它不断发展。
我已经看到了一些类似的问题,但对于this one,没有解决方案,而对于this one,我实际上并不确定是什么'在这里继续我还没有触及Groovy,而且我正在努力尽可能多地使用插件和现有的Jenkins功能。
这并不意味着我不会使用Groovy脚本 - 只是因为我不希望使用自定义脚本来混淆该过程。
我还在测试它,但它看起来像这个带有插件的单行Groovy脚本," Groovy Label Assignment"似乎工作,但我会在一小时内回来检查:
binding.getVariables().get("HARDWARE");
其中HARDWARE
是由作业参数设置的参数。我要检查的一件事是,我是否可以使用此功能混合和匹配已知和未知标签,例如,一个已知选择的小型下拉框,但其中一个选择基本上是"其他,请输入"
编辑:我已经非常疲惫,我用谷歌搜索了自己以前回答的问题,我自己也回答了这个问题。我已经改变了标题以匹配更多搜索引擎友好的内容。原标题是,
是否可以在未知的节点上触发Jenkins构建 标签值基于构建参数?
答案 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}的值(如果存在)。它不是白痴,但它让我的开发人员能够灵活地使用一些众所周知的选择,或者疯狂地进行实验。我已经确认此功能有效。