`

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)

 

分享到:
评论

相关推荐

    使用java调用jenkins api

    压缩包中的`jenkinsApi`文件可能包含一个简单的Java示例,展示了如何初始化Jenkins客户端、设置认证、触发Job构建等基本操作。通过分析这个示例,可以更好地理解上述知识点的实际应用。 在实际项目中,使用Java...

    使用C#调用jenkins API

    在提供的"JenkinsApi c#"压缩包中,可能包含了一个C#项目或类库,演示了如何调用Jenkins API。以下是一些常见的API调用场景: 1. **验证连接**:通常,我们首先需要验证Jenkins服务器的访问权限。这可以通过发送一...

    node-jenkins-api库研究.pdf

    ### node-jenkins-api库研究知识点概述 #### 一、总体框架结构 `node-jenkins-api`库是一个基于Node.js的库,旨在简化与Jenkins API交互的过程。此库的架构设计考虑到了模块化和可扩展性,使得开发人员能够轻松地...

    jenkins_api_client:用于与Jenkins远程访问API通信的Ruby客户端库

    该项目旨在使用JSON API,并提供一些有用的函数来以编程方式控制Jenkins上的作业。 即使Jenkins提供了一个很棒的UI来控制作业,但拥有一个可编程的界面也将是很好并且很有帮助的,这样我们就可以动态,自动地管理...

    PyPI 官网下载 | jenkinsapi-0.1.10.tar.gz

    而jenkinsapi库则将这些细节隐藏起来,提供了一套面向对象的API,使得与Jenkins服务器的交互变得简单直观。 jenkinsapi-0.1.10版本包含了以下主要功能: 1. **连接Jenkins服务器**:使用`jenkinsapi.jenkins....

    Python库 | api4jenkins-1.5.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:api4jenkins-1.5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    java-client-api:Java的Jenkins API客户端

    该库只是使用jenkins的REST API的一段Java代码。 这意味着您可以触发构建,提取有关作业或构建的信息。您可以提取的信息将以java对象表示,您可以将其重用于其他目的,或者将该库集成到其他部分以进行更高级别的...

    python3的通过API授权多个用户访问多个仓库以及jenkins信息获取的脚本

    在这个场景中,我们关注的是Python3如何利用GitLab和Jenkins的API来实现特定的功能。首先,我们来详细了解一下这两个工具: GitLab是一款开源的版本控制系统,它提供了强大的API功能,允许开发者通过HTTP/HTTPS协议...

    jenkins-common-pipeline:具有共享库的Jenkins通用管道

    - `README.md`或文档:描述库的使用方法和API。 - `.gitignore`:定义哪些文件不应该被Git追踪。 - `Jenkinsfile`:可能是一个示例的Pipeline脚本,演示如何使用共享库。 5. **最佳实践** - 将每个独立的功能或...

    python的Jenkins接口调用方式

    下面是一个简单的示例,展示了如何使用Python-Jenkins库与Jenkins服务器进行交互。 ```python from jenkins import Jenkins class JenkinsTools: def __init__(self): cf = get_conf() # 假设这是一个获取配置...

    常用配置Jenkins的插件

    Jenkins,作为一款广受欢迎的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)工具,凭借其灵活性和强大的插件生态系统,成为许多开发者和DevOps团队的首选。本文将深入探讨如何配置...

    无网、内网服务器 jenkins搭建 (2.328版本)全部插件 离线下载

    在Linux系统中,可以使用`systemctl restart jenkins`或`service jenkins restart`命令,而在Windows中,可以在服务管理器中停止并重新启动Jenkins服务。 2. **配置Jenkins**: - 重启Jenkins后,访问它的URL...

    Jenkins常用插件大全jenkins-plugin-war.tar.gz

    Jenkins作为一个广泛应用于持续集成和持续交付(CI/CD)领域的开源工具,其核心价值在于通过自动化流程来构建、测试和部署软件...同时,通过合理的配置和使用这些插件,可以提升团队协作效率,保障软件开发的质量和速度。

    WebLogic 部署Jenkins使用手册

    ### WebLogic 部署Jenkins使用手册 #### 一、环境准备与确认 为了确保Jenkins能够在WebLogic上顺利部署并运行,首先需要搭建一套兼容的开发环境。本手册中涉及的软件版本如下: - **操作系统**:Windows 7 x32 - ...

    Jenkins+GitHub实现C项目的集成开发

    "Jenkins+GitHub实现C项目的集成开发"是一个典型的应用场景,它结合了两个强大的工具:Jenkins,一个开源的持续集成服务器,以及GitHub,一个广泛使用的版本控制系统。本文将深入探讨如何利用这两个工具进行C项目的...

    Jenkins一键打包.zip

    2. **Unity3D工程源码管理**:在Jenkins中,通常使用版本控制系统(如Git)来管理Unity3D工程源码。你需要将Unity项目的源代码仓库URL添加到Job中,设置合适的分支或标记以决定构建的代码版本。 3. **构建触发器**...

    jenkins共享库:Jenkins共享库

    2. **文档**:编写清晰的API文档,帮助团队成员理解和使用共享库。 3. **测试**:为共享库编写自动化测试,确保代码质量。 4. **持续集成**:配置Jenkins自动构建和测试共享库,确保每次提交都能正常工作。 5. **...

    Jenkins常用插件.rar

    2. **echarts-api.hpi** - Echarts API插件允许在Jenkins的UI中集成ECharts图表,提供可视化的构建、测试结果报告,帮助开发者更好地理解项目的健康状况和趋势。 3. **git-client.hpi** - Git客户端插件提供了与Git...

    java jenkins web service client

    Web服务客户端则是Jenkins提供的一种API接口,允许外部应用程序与Jenkins服务器进行通信。 要使用Java Jenkins Web Service Client,首先需要在项目中添加相应的依赖。这通常通过Maven或Gradle等构建工具来实现,...

Global site tag (gtag.js) - Google Analytics