python-jenkins 获取作业信息 - 如何获取超过100个构建的信息?

3 投票
2 回答
10543 浏览
提问于 2025-04-18 10:24

我正在使用python-jenkins这个工具来管理一些Jenkins构建服务器。这些服务器的负载很大,有很多任务,而且有些任务保存了上百次的构建记录。

我有一个基本的目标,就是通过这个工具获取每个任务的构建次数,以及所有任务的总构建次数。以下是我的代码:

import jenkins
jnk = jenkins.Jenkins(myUrl, myUsername, myPassword)
info = jnk.get_info()
jobs = info['jobs']
totalBuildCount = 0

for job in jobs:
    jobName = job['name']
    jobinfo = jnk.get_job_info(jobName)
    builds = jobinfo['builds'] # never contains more than 100 items
    print jobName + " build count: " + str(len(builds))
    totalBuildCount += len(builds)

print "Total build count: " + str(totalBuildCount)

但我发现一个不太好的情况,就是在任务信息的字典里,构建记录的数组最多只包含100条,即使这个任务保存的构建记录远远超过100条。

有没有其他人遇到过这个限制?有没有什么办法可以解决这个问题,还是说这个工具对于那些有大量历史构建记录的服务器来说根本没用?

2 个回答

0

你可以试试用 jenkinsapi 来代替:

from jenkinsapi.jenkins import Jenkins
jnk = Jenkins(myUrl, myUsername, myPassword)
totalBuildCount = 0

for job in jnk.keys():
    builds = jnk[job].get_build_dict()
    print job + " build count: " + str(len(builds))
    totalBuildCount += len(builds)

print "Total build count: " + str(totalBuildCount)
1

当你使用python-jenkins这个模块来获取超过100个构建时,可以调用get_job_info这个函数,并设置参数fetch_all_builds=True

撰写回答