Jenkins获取编译状态

背景:在通过python的API调用Jenkins,启动Jenkins的job任务时,是需要知道Jenkins的编译状态,获取编译状态为

status=server.get_build_info(jobname, get_number2)[‘result‘] #jobname,为任务的job名称,get_number2为编译版本号

 目前是以前项目中截取的代码,我连接Jenkins是用了两种方式,因为有一种方式不能进行编译job,另外一种获取其他数据有问题,也是一直存在的bug

def connet_jenkinsjob(self):  #连接Jenkins
    server = Jenkins(jenkins_url, username=jenkins_user, password=jenkins_password,
                     requester=CrumbRequester(username=jenkins_user, password=jenkins_password,
                                              baseurl=jenkins_url))
    return server

def stats_jenkinsjob(self):#连接Jenkins
    server = jenkins.Jenkins(jenkins_url, username=jenkins_user, password=jenkins_password)
    return server
def bulids_job(self):
    global  get_number2
    server = self.stats_jenkinsjob()
    server_build = self.connet_jenkinsjob()
     server_build.build_job(jobname, params=param_dict)  # 待观察这个问题有解决方案不  进行项目的编译
                sql = "update auto_caseList  SET runStart=‘运行中‘ WHERE id= ‘" + key + "‘""
                try:
                   get_number2 = server.get_job_info(jobname)[‘nextBuildNumber‘] #获取下一个编译版本号
                   get_number = server.get_job_info(jobname)[‘lastBuild‘][‘number‘] #获取编译的版本号
                except Exception, e:
                    print "首次创建所以获取不到编译的版本号", e
                    self.mysql_uptate_operation(sql)
                else:
                    get_buildstats = server.get_build_info(jobname, get_number)[‘building‘]#获取编译的状态,是否在编译
                    if get_buildstats == False:
                        print "编译中,数据状态进行更新"
                    else:
                        print "没有编译"
                finally:
                    sleep(23) #一定要加,在启动编译后,不能马上获取编译状态,不然一直是编译成功,如果Jenkins编译失败是会在20-23S之间
                    status=server.get_build_info(jobname, get_number2)[‘result‘]#获取编译的状态,编译是否成功,如果不成功,就会返回FAILURE,编译成功是返回NONE
                    if status == "FAILURE":
                        print "构建出错: %s | 构建项目编号:%s" % (jobname, get_number2)
                        sql = "update auto_caseList  SET runStart=‘构建出错‘ WHERE id= ‘" + key + "‘""
                        self.mysql_uptate_operation(sql)
                    else:
                        print "构建成功:%s | 构建项目编号:%s" % (jobname, get_number2)

  

我这里的逻辑是获取到编译状态后,在等23s后查看编译是否成功,如果编译成功,编译完成会是None,而不通过的就是FAILURE

原文地址:https://www.cnblogs.com/chongyou/p/8683360.html

时间: 2024-08-01 18:43:55

Jenkins获取编译状态的相关文章

Jenkins 源代码编译

最近一直想写一个关于 Jenkins 管理的 InelliJ 插件,但是尝试很多次总是在登录认证上面失败,各种办法都不起作用,而且官方的文档含糊不清,就动起了从源代码编译在开发环境中进行调试. 废话少说,下面开始说明 Jenkins 的编译过程. 环境准备 首先,JDK 环境是必须的了,而且要设置好 JAVA_HOME 环境变量,因为 Maven 会使用到,我这里使用的是最新的 Java 8 1.8.0_112. 然后需要的就是 Maven 了,我这里使用的是 3.3.9 由于要使用 Git 来

Android 通过广播获取网络状态

Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请对比WIFI连接作出调整. 首先写一个WifiStateBroadcast类继承BroadcastReceiver,重写onRecevie方法,获取网络连接状态管理器,通过管理器拿到对应的网络信息,得到网络状态,判断网络状态,作出相应的业务逻辑. 1 public class WifiStateBroadCast e

iOS 获取网络状态

在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews]; NSString *state = nil; int n

Jenkins获取git tags代码

配置Jenkins获取git tag代码的方式其实方法很多,目前我使用比较多的主要是通过Git Parameter 来配置动态的获取最新tags代码,主要我们首先需要安装一下Git Parameter Plug-In插件,有时候直接安装会安装失败,那就直接手动安装一下. 下载地址:http://updates.jenkins-ci.org/download/plugins/git-parameter/ 1.我们进入我们目标Jenkins任务,选择[参数化构建过程]->[添加参数]->[Git

android开发获取网络状态,wifi,wap,2g,3g.工具类(一)

android开发获取网络状态整理: 1 package com.gzcivil.utils; 2 3 import android.content.Context; 4 import android.net.ConnectivityManager; 5 import android.net.NetworkInfo; 6 import android.telephony.TelephonyManager; 7 import android.text.TextUtils; 8 9 public c

C# 获取时间差状态

/// <summary> /// 根据时间获取时间状态 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GetTimeInfo(DateTime dt) { TimeSpan span = DateTime.Now - dt; if (span.TotalDays > 60) { retur

jenkins获取git上的源码

jenkins获取git上的源码会遇到三种情况,我们在这里会分别介绍一下: 一.获取git上public(公有)的项目 只需配置仓库的URL即可 jenkins下使用git获取源码的配置方法 二.获取git上的private(私有)项目 2.1 使用用户名密码 仓库的URL使用http协议 2.2 使用密钥 仓库的URL使用 ssh协议的,以git开头 原文地址: http://www.xuebuyuan.com/2042085.html

StickyBroadcast在获取电池状态中的妙用

StickyBroadcast在获取电池状态中的妙用 今天在做开发的时候,突然遇到这样的一个问题,当你的设备电量低于15%的时候这个时候设备的闪光灯是无法打开的,但是我们平台的解决方案对这一块没有做出任何的提示,于是直接导致了用户认为他的闪光灯坏掉了,于是老大要求我们解决这个问题. 我们都知道电池的电量信息获取我们是通过广播来实现的. 标准做法如下: private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {

获取网络状态,区分2G3G4GWIFI等,非reachability

+(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];    NSString *state = [[NSString alloc]init];