Groovy 和 Jenkins - 将 curl 输出捕获到文件
Posted
技术标签:
【中文标题】Groovy 和 Jenkins - 将 curl 输出捕获到文件【英文标题】:Groovy & Jenkins - capture curl output to a file 【发布时间】:2017-07-11 01:13:38 【问题描述】:我想在 Jenkins 中填写一个动态参数框。
我的 Groovy 脚本应该执行以下操作:
-
在文件中收集 JSON 输出。
解析 JSON 输出以获得一些特定值。
在 Jenkins 的动态参数列表中显示这些值,以便从中选择一个。
你能帮我写一下 Groovy 脚本吗?不知道 Groovy :-(。
谢谢!
【问题讨论】:
为什么要做1.?见Groovy – Learn、Groovy – Parsing and producing JSON、how to parse json using groovy等 我应该先运行一个 curl 命令来获取我的 json 输出文件,然后我必须从这个 json 文件中获取一些信息。 “jsonSlurper.parseText”支持 curl 执行?我的 curl 命令具有以下形状: curl -s ''$URL' -u $USERKEY 【参考方案1】:您不必将 JSON 数据写入文件即可实现此目的。
以Perfectly working curl command fails when executed in a groovy script 和Parsing and producing JSON, 1. JsonSlurper 为基础,在动态参数的脚本中执行以下操作:
import groovy.json.JsonSlurper
url= "http://user:pwd@jenkins/api/json"
process = [ 'bash', '-c', "curl $url" ].execute()
process.waitFor()
//println process.err.text // for debugging in Jenkins' Script Console
//println process.text
info = new JsonSlurper().parseText(process.text)
return info._class
使用参数构建处的输出:
此构建需要参数:
动态参数
hudson.model.Hudson
【讨论】:
以上是关于Groovy 和 Jenkins - 将 curl 输出捕获到文件的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins-pipeline 从 groovy 中的属性文件中提取和设置变量