Jenkins构建任务中如何从外部文件动态加载参数

165次阅读
没有评论

问题描述

在Jenkins构建任务中使用了Extended Choice Parameter插件,通过以下代码可以正常工作:

extendedChoice description: '', multiSelectDelimiter: ',', name: 'Capablities', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX',value: 'Chrome_macos10_15, Chrome_win10', visibleItemCount: 30

但是用户希望能够从外部文件中动态传递Chrome_macos10_15Chrome_win10这两个值。用户想知道如何实现这个需求。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

使用Jenkins的Active Choice Parameter插件,该插件允许您运行Groovy脚本来动态加载参数的值。
以下是实现步骤:
1. 在Jenkins中安装Active Choice Parameter插件。您可以在Jenkins的插件管理页面中搜索并安装该插件。
2. 在构建任务的参数化配置中,选择”Active Choice Parameter”作为参数类型。
3. 在”Groovy Script”字段中编写一个Groovy脚本,用于从外部文件中加载参数的值。以下是一个示例脚本:

def fileContent = new File('/path/to/external/file.txt').text
def values = fileContent.split(',')
return values

在上面的示例中,我们首先使用new File()方法读取外部文件的内容,并将其存储在fileContent变量中。然后,我们使用split()方法将文件内容按逗号分割为一个字符串数组。最后,我们返回这个数组作为参数的值。
4. 根据您的需求,可以进一步配置参数的其他属性,如描述、可见项数等。
5. 保存并应用构建任务的配置。

方案2

使用脚本或工具来管理参数的加载可能会增加复杂性,并且需要确保外部文件的格式正确。
另一种方法是编写脚本或使用工具来控制参数的加载。您可以使用Groovy脚本或其他脚本语言来读取外部文件,并将其值作为参数传递给Jenkins构建任务。
以下是一个简单的Groovy脚本示例,可以从外部文件中加载参数的值:

def fileContent = new File('/path/to/external/file.txt').text
def values = fileContent.split(',')
return values

在这个示例中,我们使用new File()方法读取外部文件的内容,并将其存储在fileContent变量中。然后,我们使用split()方法将文件内容按逗号分割为一个字符串数组。最后,我们返回这个数组作为参数的值。
您可以将这个脚本保存为一个独立的文件,并在Jenkins构建任务中调用它。具体的调用方式取决于您的构建任务配置和脚本语言的选择。

以上是两种实现动态加载参数值的方法,您可以根据自己的需求选择适合的方法。请注意,使用外部文件加载参数值可能会增加一些复杂性,并且需要确保外部文件的格式正确。

正文完