代码改变世界

【Devops】【Jenkins】jenkins API获取工程构建结果SUCCESS/FAIL

2022-09-27 14:32  码上起舞  阅读(614)  评论(0编辑  收藏  举报

一、速览

核心原理: API调用命令行如下

cmd = "curl --user username:pwd http://xx.xx.xx.xx:8080/job/{}/job/{}/{}/api/json".format(jobname1, jobname2,jobnum)

ps:这里的job后面的路径要依据具体搭建的jenkins路径来填写,有的有文件夹,层级会多一级,没有文件夹,层级会少一级。可变。

二、python代码实现

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Send data to fengsheng")
    parser.add_argument('--userid',action="store")
    parser.add_argument('--buildtag', action="store")
    parser.add_argument('--subject',action="store")
    parser.add_argument('--message',action="store")

    args = parser.parse_args()
    users = args.userid
    print(args.userid,args.subject)

    #获取build的结果
    
    jobinfo = args.subject.split("/")
    jobname1 = jobinfo[0]
    jobname2 = jobinfo[1]
    jobnum = jobinfo[2]
    cmd = "curl --user username:pwd http://xx.xx.xx.xx:8080/job/{}/job/{}/{}/api/json".format(jobname1, jobname2,jobnum)
    buildinfo = os.popen(cmd)
    print("\nbuildinfo.read\n",buildinfo.read())
    build_info = json.loads(buildinfo.read())
    build_url = build_info["url"]
    build_result = build_info["result"]

-----------------------------
build_result 及cmd获取的build的构建结果SUCCESS或FAIL
当然,build_info中还可以筛选出很多的构建信息,按需取用