jenkins jenkinsapi库 的使用

from jenkinsapi.jenkins import Jenkins

j = Jenkins('http://XX.XX.xx.xx:9000/jenkins/')
jobName = j.keys()[1]
j_config = j[jobName].get_config()
j_views = j.views.keys()
# print(j.views.iteritems())
# print(j.keys())
# print(j.items()[0][1])
v_k = {i[0]: list(i[1].keys()) for i in j.views.iteritems()}

# 不等待结果构建
# r = j.build_job('yihao01-ecommunity-web')
# job = j['yihao01-session']

#等待发布结果构建 返回编号
# qi = job.invoke()
# if qi.queue_id or qi.is_running():
#     qi.block_until_complete()
# build = qi.get_description
#
# job = j.get_job('yihao01-ecommunity-web')
# print(job.get_last_build())

#根据job, id 获取返回结果success ,fail
my_job = j.get_job('yihao01-populationmobility-manager')
count_build = my_job.get_build(780)
r = count_build.get_status()

# 获取console详细输出
std_console = count_build.get_console()
print(std_console)

jenkinsapi库封装的类

该库下封装了23个类,主要有jenkins.pyjob.pybuild.pyview.pynode.py等,其主要作用:

1.jenkins.py

   主要通过该接口进入jenkins服务器,对jobnode进行操作,有:

get_jobscreate_jobbuild_jobdelete_jobget_nodeget_queueget_pluginsget_master_data等;

2.job.py

   针对job的构建进行操作,有:

get_first_buildnumberget_last_stable_buildnumberget_last_failed_buildnumberget_next_build_numberis_queuedis_runningis_enableddelete_from_queue等;

3.build.py

   对构建的job的构建结果进行分析有:

get_numberget_statusget_revision_branchget_master_job_nameget_master_build_number等;

4.view.py

view视图进行操作

5.node.py

node节点进行操作

 

jenkinsapi库的使用

获得jenkinsjob的列表

代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: gb2312 -*-
"""
输入:jenkins服务器的地址,用户名和密码
输出:已定义的job的列表
"""
import  datetime, time
from  jenkinsapi.jenkins  import  *
from  jenkinsapi.job  import  *
from  jenkinsapi.build  import  Build
def  Url_Get_Job_List(url = 'http://localhost:8080' , username = 'jenkins' , password = 'jenkins' ):
     jenkins  =  Jenkins(url, username, password)
     count  =  0
     for  job_name  in  jenkins.keys():
         my_job  =  jenkins.get_job(job_name)
         count  =  count  +  1
         print  "Job"  +  str (count)  +  " : " + job_name
if  __name__  = =  "__main__" :
     Url_Get_Job_List()


运行后输出:

Job1 : create

Job2 : JenkinsTest

Job3 : Test_1

 

 

根据给定job名获得job的构建情况

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# -*- coding: cp936 -*-
"""
输入:jenkins job名称和日期(年、年-月、年-月-日)
输出:job的名称、日期、执行次数、成功次数、失败次数、未执行次数、不稳定次数
"""
import  datetime, time
from  jenkinsapi.jenkins  import  *
from  jenkinsapi.job  import  *
from  jenkinsapi.build  import  Build
def  Get_Date_List(Job_Name):
     my_job  =  jenkins.get_job(Job_Name)
     first_build  =  my_job.get_first_buildnumber()       #获得jenkins列表中的第一个构建数目,不一定是从1开始的
     last_build  =  my_job.get_last_buildnumber()       #获得最近一次构建的数目
         
     for  count  in  xrange (first_build, last_build + 1 ):     #依次获得每一个job号
         count_build  =  my_job.get_build(count)
         start_time  =   count_build.get_timestamp()       #获得构建时间,时区好像不大对
         
         adjust_time  =  start_time  +  datetime.timedelta(hours = 8 )    #所以在这里加了8小时,变成北京时间了
         Build_Time  =  adjust_time.strftime( "%Y-%m-%d" )      #输出时间的格式
         Status  = count_build.get_status()                  #返回这次构建的状态,成功或失败
         
         print  my_job, count, Build_Time, Status
                               
     
if  __name__  = =  "__main__" :
     jenkins  =  Jenkins( 'http://localhost:8080' 'jenkins' 'jenkins' )
     Job_Name  =  'create' 
     Get_Date_List(Job_Name)

猜你喜欢

转载自hugoren.iteye.com/blog/2393254