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
答案 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()
干杯。