Jenkins - 选择参数 - mysql数据库查询返回列表

时间:2016-03-29 18:57:13

标签: mysql jenkins groovy

Jenkins的新用户。我正在尝试替换使用网站的旧构建系统,其中部分网站具有下拉菜单,该菜单使用mysql中的SELECT查询提供旧构建的列表。这允许用户根据需要部署或删除构建。

目标是在Jenkins中设置一个选择参数(有许多不同的选择插件--Dynamice,Active,Extended等,我不确定使用哪个),以便用户可以从列表中选择构建

使用Scriptler插件,我能够运行以下代码(已编辑),并返回构建列表,这就是我想要的:

import groovy.sql.Sql
def sql = Sql.newInstance('jdbc:mysql://localhost:3306/test', 'root', '', 'com.mysql.jdbc.Driver')
String sqlString = "SELECT BVersion FROM BuildTable WHERE Branch = '${BUILD_NAME} ORDER BY BuildDate DESC Limit 10;"
sql.eachRow(sqlString){ row ->  
    println row[0]  
}

我也希望进行变量替换,以便用户在上面的选择中选择$ {BUILD_NAME},这将根据该选项动态返回构建列表。

然而,当我将代码添加为脚本代码或groovy脚本时,我发现它既不起作用又得到一个空白字段。我错过了什么让这个选择,每行单选?

感谢您提供的任何帮助。 d

1 个答案:

答案 0 :(得分:2)

您需要将它们放入数组中,而不是打印出结果。

代码重写:

import groovy.sql.Sql

def output = []

def sql = Sql.newInstance('jdbc:mysql://localhost:3306/test', 'root', '', 'com.mysql.jdbc.Driver')
String sqlString = "SELECT BVersion FROM BuildTable WHERE Branch = '${BUILD_NAME} ORDER BY BuildDate DESC Limit 10;"
sql.eachRow(sqlString){ row ->  
    output.push(row[0])
}

return output

如果您想订购输出,请执行以下操作:

return output.sort()

干杯。