【问题标题】:Set Jenkins label to value of build parameter for truly dynamic node and label based builds将 Jenkins 标签设置为构建参数的值,以实现真正动态的节点和基于标签的构建
【发布时间】:2017-01-05 21:01:00
【问题描述】:

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

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

我见过一些类似的问题,但是对于this one,没有解决方案,对于this one,我实际上并不确定这里发生了什么。我还没有接触过 Groovy,我正在尝试尽可能多地使用插件和现有的 Jenkins 功能。

这并不意味着我不会编写 Groovy 脚本——只是我不想用自定义脚本混淆流程。

编辑:

我仍在测试它,但看起来这个带有插件的单行 Groovy 脚本“Groovy 标签分配”似乎可以工作,但我会在一小时内回来查看:

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

其中HARDWARE 是由作业参数设置的参数。我要检查的一件事是我是否可以将已知和未知标签与此功能混合和匹配,例如,一个带有已知选项的小下拉框,但一个选项本质上是“其他,请输入”。

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

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

【问题讨论】:

    标签: jenkins plugins groovy parameters build


    【解决方案1】:

    好的,这很酷。是的,这是可能的。我确实使用了 Groovy 脚本,但它是与插件结合使用的单行脚本,因此没有太多偷听记录,我认为这是可以接受的。

    第一件事,使用plugin's site's instructions,我试过了:

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

    HARDWARE 是一个作业参数。它实际上是一个下拉框,例如,来自该插件的选择参数。要调用这个插件,在安装它之后有一个框可以检查,

    Groovy 脚本来限制此项目的运行位置

    它与我的参数之一结合使用:

    选择1

    选择2

    选择3

    ${CUSTOM_CHOICE}

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 2011-11-01
      • 2016-12-30
      • 1970-01-01
      相关资源
      最近更新 更多