今天在翻有道云笔记,看到了曾经在LS写过的一段python脚本,拿来给大家分享下
#!/usr/bin/python
#-*- coding: utf-8 -*-
import jenkins
import time
import sys
import json
def jenkins_job(job_name,kw=""):
server = jenkins.Jenkins('http://172.16.1.134:8080/jenkins', username='leo.li', password='111111')
reload(sys)
sys.setdefaultencoding('utf-8')
job_name=job_name.decode('gbk').encode('utf-8')
#kw={"app":"search-service","ip": "172.16.1.130","bantch":"master"}
print kw
kw_len=len(kw)
r1= server.get_job_info(job_name)['lastCompletedBuild']['number']#最后一次完成的构建号
r2= server.get_job_info(job_name)['lastBuild']['number']
print type(kw)
if kw_len != 0:
kwj1=eval(kw)
print kwj1
kwj2=json.dumps(kwj1)
print kwj2
kwj=json.loads(kwj2)
print kwj
print type(kwj)
parameters=kwj
else:
parameters={}
print u'构建号','r2=',r2
if r1 == r2:
server.build_job(job_name,parameters=parameters)
print u'正在发送构建命令,请等待10秒'
time.sleep(10)
num_id=server.get_job_info(job_name)['lastBuild']['number']
print u'新的构建号numb_id=',num_id
a=num_id-r2
print u'新旧构建号差值为a=',a
if a == 1:
re_rn=server.get_build_info(job_name,num_id)['building']
while re_rn :
print u'构建还在执行中,请等待10秒'
time.sleep(10)
re_rn=server.get_build_info(job_name,num_id)['building']
print u"构建完毕"
result1=server.get_build_info(job_name,num_id)['result']
print "构建结果是:%s" %result1
else:
print u'构建编号异常,请重试'
else:
print u'还有job正在执行中,请稍后再试'
if __name__ == '__main__':
job_name=sys.argv[1]
if len(sys.argv) == 3 :
kw=sys.argv[2]
jenkins_job(job_name,kw)
if len(sys.argv) == 2 :
jenkins_job(job_name)