Jenkins - 选择参数 - mysql 数据库查询返回列表
Posted
技术标签:
【中文标题】Jenkins - 选择参数 - mysql 数据库查询返回列表【英文标题】:Jenkins - choice parameter - mysql database query return list 【发布时间】:2016-03-29 18:57:13 【问题描述】: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,这将根据该选择动态返回构建列表。
但是,当我将代码添加为 scriptler 代码或 groovy 脚本时,我发现两者都不起作用并且我得到一个空白字段。为了让这个返回一个选择,每行一个选择,我缺少什么?
感谢您提供的任何帮助。 D
【问题讨论】:
【参考方案1】:您需要将结果放入数组中,而不是打印出来。
代码重写:
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()
干杯。
【讨论】:
以上是关于Jenkins - 选择参数 - mysql 数据库查询返回列表的主要内容,如果未能解决你的问题,请参考以下文章
使用 System Groovy 选择参数访问可扩展选择中的 Jenkins 作业参数变量
Jenkins - 动态选择参数 - 从列表中删除文件扩展名