如何为Jenkins构建参数设置字符串对/数组?

qoefvg9y  于 6个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(132)

我目前正在尝试建立一个Jenkins管道构建,它将一个字符串对数组作为构建参数。
上述参数将用于将工作副本的某些子目录切换到指定的分支,有效地授予Jenkins使用混合分支的能力:即,如果[{"A1", "A2"}, {"B1", "B2"}, {"C1", "C2"}]作为参数,Jenkins将把本地分支A1切换到URL "A2",本地分支B1切换到URL "B2",等等。
获取一个列表并为每一对切换分支可以简单地通过管道脚本完成;问题是找到一种方法来实际传递一个字符串数组或一对字符串。
最初我尝试使用多行字符串参数,让用户每行输入一对,用逗号分隔。但是我的PM坚持我不能使用这种方法,因为输入的字符串很难阅读/输入,所以这是不可能的。
搜索带有“Build Parameters”标签的Jenkins插件是徒劳的,因为没有一个插件提供我正在寻找的功能。
在Jenkins中有没有什么方法可以设置:

  • 由两个用户输入字符串组成的构建参数,例如键值对,
  • 还是一个构建参数,它是一个可变长度的用户输入字符串数组,您可以添加/删除?

或者我应该创建我自己的Jenkins插件来做这件事?

qmelpv7a

qmelpv7a1#

您可以使用Active Choice Reactive Reference Parameter来实现此目的。在您的作业中添加一个名为PARAM的Active Choice Reactive参考参数,并提供以下groovy脚本:

return """<table>
    <tr>
        <td>
            <input style="border:none" class="jenkins-form-label" name="value" Value="A1" readonly size="40"></input>
        </td>
        <td>
            <input class="jenkins-input" name="value" Value="A2" size="100"></input>
        </td>
    </tr>
    <tr>
        <td>
            <input style="border:none" class="jenkins-form-label" name="value" Value="B1" readonly size="40"></input>
        </td>
        <td>
            <input class="jenkins-input" name="value" Value="B2" size="100"></input>
        </td>
    </tr>
    <tr>
        <td>
            <input style="border:none" class="jenkins-form-label" name="value" Value="C1" readonly size="40"></input>
        </td>
        <td>
            <input class="jenkins-input" name="value" Value="C2" size="100"></input>
        </td>
    </tr>
</table>"""

字符串
重新启动脚本,并在选择类型栏中选择Formatted HTML
在pipeline脚本中,您可以将此参数用作env.PARAM,您将获得的值为A1,A2,B1,B2,C1,C2,

相关问题