使用python脚本操作Jenkins-job

今天在翻有道云笔记,看到了曾经在LS写过的一段python脚本,拿来给大家分享下

<code>#!/usr/bin/python
#-*- coding: utf-8 -*-

import jenkins
import time
import sys
import json
def jenkins_job(job_name,kw=""):
\tserver = jenkins.Jenkins('http://172.16.1.134:8080/jenkins', username='leo.li', password='111111')
\treload(sys)
\tsys.setdefaultencoding('utf-8')
\tjob_name=job_name.decode('gbk').encode('utf-8')
\t#kw={"app":"search-service","ip": "172.16.1.130","bantch":"master"}
\tprint kw
\tkw_len=len(kw)
\tr1= server.get_job_info(job_name)['lastCompletedBuild']['number']#最后一次完成的构建号
\tr2= server.get_job_info(job_name)['lastBuild']['number']
\tprint type(kw)
\tif kw_len != 0:

\t\tkwj1=eval(kw)
\t\tprint kwj1
\t\tkwj2=json.dumps(kwj1)
\t\tprint kwj2
\t\tkwj=json.loads(kwj2)
\t\tprint kwj
\t\tprint type(kwj)
\t\tparameters=kwj
\telse:
\t\tparameters={}

\tprint u'构建号','r2=',r2
\tif r1 == r2:
\t\tserver.build_job(job_name,parameters=parameters)
\t\tprint u'正在发送构建命令,请等待10秒'
\t\ttime.sleep(10)
\t\tnum_id=server.get_job_info(job_name)['lastBuild']['number']
\t\tprint u'新的构建号numb_id=',num_id
\t\ta=num_id-r2
\t\tprint u'新旧构建号差值为a=',a
\t\tif a == 1:
\t\t\tre_rn=server.get_build_info(job_name,num_id)['building']
\t\t\twhile re_rn :
\t\t\t\tprint u'构建还在执行中,请等待10秒'
\t\t\t\ttime.sleep(10)
\t\t\t\tre_rn=server.get_build_info(job_name,num_id)['building']
\t\t\tprint u"构建完毕"
\t\t\tresult1=server.get_build_info(job_name,num_id)['result']
\t\t\tprint "构建结果是:%s" %result1
\t\telse:

\t\t\tprint u'构建编号异常,请重试'
\telse:
\t\tprint u'还有job正在执行中,请稍后再试'

if __name__ == '__main__':
\t
\tjob_name=sys.argv[1]
\t
\tif len(sys.argv) == 3 :
\t\tkw=sys.argv[2]
\t\tjenkins_job(job_name,kw)
\tif len(sys.argv) == 2 :
\t\tjenkins_job(job_name)/<code>


分享到:


相關文章: