我使用jenkins-cli从我的shell脚本连接Jenkins。我需要获取给定作业中前20个构建的控制台输出并进行一些计算。
我想知道如何使用jenkins-cli或任何其他容易获得的方式获取jenkins作业中可用的构建列表,以便我可以使用内部版本号使用jenkins-cli获取作业的控制台输出这份工作。
先谢谢
答案 0 :(得分:4)
我使用REST api而不是他们提供的cli。我发现它更快更灵活。
对于您的情况,我将从作业名称生成一个URL,该URL返回所有成功构建的XML数据,然后遍历每个构建并从另一个生成的URL获取控制台输出。
将返回包含所有成功构建的内部版本号的XML数据的URL。
jenkins:8080/job/example_job/api/xml?tree=allBuilds[result,number]&xpath=//allBuild[result='SUCCESS']/number&wrapper=nums
jenkins:8080/job/example_job/api/xml?
- 在工作中打开XML api的Jenkins服务器。
tree=allBuilds[result,number]&
- 仅询问属于某个职位的所有版本的number
和result
。
xpath=//allBuild[result='SUCCESS']/number&
- 让Jenkins对这些数据进行工作,filter将其归结为属于number
代码allBuild
代码的result
代码列表。 1}}标记的值为SUCCESS
。
wrapper=nums
- 由于xpath已将所有数字拆分,因此他们没有父级,我们需要将它们包装在另一个标记nums
下。
使用这些num XML标签,您只需创建一个URL即可获得控制台输出。
jenkins:8080/job/example_job/132/consoleText
我看到你有一个Python标签,所以我在Python中假设你的脚本。这意味着您可以使用minidom和urllib2来解析XML数据并检索网页。