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库封装的类
jenkinsapi库的使用
获得jenkins中job的列表
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()
|
根据给定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)
|