jenkins jenkinsapi庫 的使用

    在研究jenkinsapi的時候,在百度和google查找資料,總是些零零碎碎的介紹,基於這段時間的研究,有點小成就,所以將研究的工作記錄下來。

jenkinsapi庫的安裝

  1. 下載:在https://pypi.python.org/pypi/jenkinsapi/上下載jenkinsapi-0.2.26.tar.gz

  2. 安裝:解壓jenkinsapi-0.2.26.tar.gz,進入jenkinsapi-0.2.26目錄,運行pythonsetup.py install 進行安裝,聯網情況下,程序會直接下載一些包,並進行安裝,運行結束後可以對該庫進行操作。


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的列表

代碼爲:

# -*- 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的構建情況

代碼:

# -*- 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)



運行結果如下:

create 1 2015-03-24 FAILURE

create 2 2015-03-24 FAILURE

create 3 2015-03-24 SUCCESS

create 4 2015-03-25 SUCCESS

create 5 2015-03-30 FAILURE


通過該模塊,運行腳本能夠得到jenkins每天的構建的詳細信息,方便每天的統計。

本人接觸python時間不長,研究也比較膚淺,希望能夠和大家一起學習,歡迎一起討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章