微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jenkins轮询任务

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.'


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐