from jenkins import Jenkins # 判断job是否运行结束 def build(): job = 'branch-deploy-wap' params = { 'server_ip': '10.160.30.XXX', 'server_username': 'root', 'server_userpass': 'XXXXXX', 'node_branch': 'master' } jenkins_server_url = 'http://jenkins.XXX.XX.ted:8080/' user_id = 'zhzhgo' api_token = '11e6d803fd4ab788626134de41344fd2dd' server = Jenkins(jenkins_server_url, username=user_id, password=api_token) queue_num = server.build_job(job, parameters=params) print(queue_num) ans = server.get_queue_item(queue_num) print(json.dumps(ans)) start = time.time() isBuilding = True buildnum = -1 status = 'FAILURE' try: while isBuilding: if ans != None and 'executable' in ans and 'number' in ans['executable']: buildnum = ans['executable']['number'] while isBuilding: time.sleep(5) isBuilding = server.get_build_info(job, buildnum)['building'] else: time.sleep(5) ans = server.get_queue_item(queue_num) print(json.dumps(ans)) status = server.get_build_info(job, buildnum)['result'] except Exception as e: print('getbuildinfo_resultexpt:'+str(e)) # ans = {'buildnum': buildnum, 'status': status} end = time.time() print("time:", end-start, "buildstatus:", status) return status # 运行job def jenkins_start(job, params): url = 'http://10.XXX.XX.XX:8080/' id = 'zhzhgo' token = "zhzhgo" server = Jenkins(url, username=id, password=token) server.build_job(job, parameters=params) return 'job is running, please wait for report.'