通过python程序关闭正在执行的Jenkins Job
配置了Jenkins来进行自动化,Jenkins部署在远程服务器上,通过shell脚本执行Python的一些测试脚本,但是有一个问题,在Jenkins构建了一个Job后,即使中间的Python测试脚本出现了failed,也还会执行下去,知道执行完整个Job,为了在出现问题的时候保留现场,需要在出现问题的时候,立刻停止这个Jenkins Job。
通过python-jenkins官网可以查到jenkins对python开放的API
# https://python-jenkins.readthedocs.io/en/latest/examples.html
通过 get_running_builds()方法可以获得正在执行的Job各类信息,主要是获得job的name和number,有了name和number就可以关闭任何一个我们想关闭的Job,name和number如下
直接上代码
import jenkins
# 连接到 Jenkins 服务器
server = jenkins.Jenkins('http://10.5.101.120:8080', username='test', password='test')
# Jenkins一般都部署在远程服务器,这里就是服务器的IP和登录名、密码
# 获取正在运行的构建信息
running_builds = server.get_running_builds()
print(running_builds)
# 遍历所有正在运行的构建
for build in running_builds:
job_name = build['name']
job_number = build['number']
# 停止指定的构建
server.stop_build(job_name, job_number)
如果服务器在内网,那么可能会需要安装jenkins库,没有联通外网的情况下,可以在下面网站下载对应的包,然后移到服务器上手动安装即可。
# https://pypi.org/