使用python脚本操作Jenkins-job

今天在翻有道云笔记,看到了曾经在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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试界

您的支持是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值