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.py、job.py、build.py、view.py、node.py等,其主要作用:

1.jenkins.py

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

get_jobs、create_job、build_job、delete_job、get_node、get_queue、get_plugins、get_master_data等;

2.job.py

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

get_first_buildnumber、get_last_stable_buildnumber、get_last_failed_buildnumber、get_next_build_number、is_queued、is_running、is_enabled、delete_from_queue等;

3.build.py

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

get_number、get_status、get_revision_branch、get_master_job_name、get_master_build_number等;

4.view.py

对view视图进行操作

5.node.py

对node节点进行操作

jenkinsapi库的使用

获得jenkins中job的列表

代码为:

# -*- 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时间不长,研究也比较肤浅,希望能够和大家一起学习,欢迎一起讨论!

时间: 2024-10-12 01:16:35

jenkins jenkinsapi库 的使用的相关文章

jenkinsapi出现HTTPConnectionPool Max retires exceeded异常

python项目通过使用jenkinsapi远程控制jenkins jenkinsapi使用的远程连接方法是requests包,requests包又使用了urllib3,urllib3又引用了httplib. """urllib3 - Thread-safe connection pooling and re-using.""" requests使用连接池机制,连接池 http的通过设置 Connection:keep-alive 的header

毕业两年做到测试经理的经历总结

前言 最近看到行业的前辈都分享一些过往的经历来指导我们这些测试人员,我很尊敬我们的行业前辈,没有他们在前面铺路,如今我们这帮年轻的测试人估计还在碰壁或摸着石头过河,结合前辈们的经验,作为年轻的测试人也有自己的一些职场,技术以及行业交际的一些总结经验,今天有些时间,我也写写我做为一名90后测试人的一些经历和看法吧,还是先简单介绍一下自己,本人15年本科毕业,还有一个月工作就满两年了,现在在公司的创新团队任测试负责人,不过由于个人发展的原因,也很快要和现在的公司说88啦 二.情怀 我对软件测试这个方

在Jenkins中使用Git Plugin访问Https代码库失败的问题

最近需要在Jenkins上配置一个Job,SCM源是http://git.opendaylight.org/gerrit/p/integration.git 于是使用Jenkins的Git Plugin做这件事情. 结果报错如下: hudson.plugins.git.GitException: Failed to fetch from https://git.opendaylight.org/gerrit/p/integration.git at hudson.plugins.git.GitS

jenkinsapi抓取jenkins网页信息

pip install jenkinsapi vi aa.py #!/usr/bin/python #coding:utf-8 from jenkinsapi.jenkins import Jenkinsfrom jenkinsapi.build import Build def get_server_instance():server = Jenkins('http://10.0.1.2:8080/jenkins', username='ming', password='xxxxxx')ret

Jenkins拉取github库代码执行构建

前言 上篇文章写了关于定时构建,以及构建后发送邮件的内容,但是构建时运行的代码是我们手动添加到Jenkins工作空间的.这篇文章我们说一说自动从GitHub远程库拉取代码,执行构建,废话不多说,开始!(开始之前,我们需要安装GitHub插件:GitHub plugin 如何安装自行百度吧) 新建项目 仍然和上一篇文章一样,我们新建一个自由风格的项目(我这里就不新建了 我直接在原有的项目基础上配置) 获取GitHub地址 我们项目所在路径的地址 项目配置 General 输入项目描述, 勾选Git

python调用jenkinsAPI构建jenkins,并传递参数

安装jenkins 安装jenkins很简单,可以用多种方式安装,这里知道的有: 在官网下载rpm包,手动安装,最费事 centos系统通过yum安装,ubuntu通过apt-get安装(不推荐,因为很多东西都使用了默认的) 直接下载官网上的war包:wget http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.164.2/jenkins.war 我这里直接用的下载war包 遇到的坑 在安装之前,公司的服务器上已经有一个版本的jekins在运行了

jenkins中使用到的Jelly标签库

jelly:core http://commons.apache.org/proper/commons-jelly/tags.html jelly:stapler http://stapler.kohsuke.org/jelly-taglib-ref.html jelly:define http://commons.apache.org/proper/commons-jelly/libs/define/tags.html /lib/layout 目录,调用此目录下相应的jelly文件 jelly

Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考[维基](https://en.wikipedia.org/wiki/Jenkins_(software)介绍. Gitlab GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目,更多介绍参考维基

Jenkins安装

这是我的第一个文章,只是自己对Jenkins在安装过程中的经验与体会,适合刚接触或准备使用Jenkins工具的人员,写的不好,希望大家多多指点,后续将增加更过内容,如:Jenkins配置.分布式部署与采集github代码库构建等. Jenkins是一个开源,使软件的持续集成变成可能.Jenkins支持分布式部署,实现统一管理,持续集成. Jenkins的安装方式非常简单,支持tomcat.Java和YUM方式安装和启动,以下主要介绍Java和yum两种安装方式(使用tomcat方式需要将Jenk