python的Jenkins接口调用方式
作者:很长很长的名字 发布时间:2022-02-23 11:26:23
标签:python,Jenkins,接口
本来非常喜欢偷懒
最好就是不干活那种
所以最近在研究把Jenkins模块集成起来
做成傻瓜界面这样就给他们用
本人Python搓望大神不要喷,多多指导
jenkins的Python模块模块安装
pip:
pip install python-jenkins
easy_install:
easy_install python-jenkins
使用:
class jenkins_tools():
def __init__(self):
cf = get_conf()
self.username = cf.get('jenkins', 'username')
self.password = cf.get('jenkins', 'password')
self.php_jenkins = '''#本 * 自己的jenkins的conf文件
<project>#这里可以去抄jenkins的项目文件夹里面的配置文件
<actions/>#记得不要加xml头,源码哪里帮我们加了,自己加就是作死
<description></description>#项目需求不一样,配置文件也不一样,你们不要抄我的
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>Branch</name>
<description></description>
<defaultValue>%s</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>xxxxxxx</command>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>
'''
self.java_newjenkins = '''#本 * 的另外一个jenkins的conf文件
<project>
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>Branch</name>
<description></description>
<defaultValue>%s</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>xxxx</command>
</hudson.tasks.Shell>
</builders>
<publishers/>
<buildWrappers/>
</project>
'''
def __conn_jenkins_server(self, url):
try:
#获得一个jenkins的操作实例
server = jenkins.Jenkins(url, username=self.username, password=self.password)
return server
except Exception:
logging.warning('login jenkins failed!')
return None
def create_project(self, host_ip, project_name, git_path, git_branch, url, environment):
server = self.__conn_jenkins_server(url)
if server:
server.create_job(project_name, self.php_jenkins)#参数1写的是项目名称,参数2是xml文档
return True
else:
return None
def project_built(self, url, project_name, git_branch):#这个函数作用是构建项目
server = self.__conn_jenkins_server(url)
server.build_job(project_name, {'Branch': git_branch})
def check_project_exist(self, project_name, url):#这个函数是检查项目是否已经存在虽然写得很挫忘不要见怪
server = self.__conn_jenkins_server(url)
name = server.get_job_name(project_name)
if name is None:
return False
return True
详细可以看官方文档:http://python-jenkins.readthedocs.io/en/latest/api.html
补充知识:python调用jenkinsapi
在通过python 调用jenkinsapi的时候,需要对一些作业进行定时对构建
报错:
<title>Error 403 No valid crumb was included in the request</title>\n</head>\n<body><h2>HTTP ERROR 403</h2>
原因是在jenkins的安全配置里勾选里下面这个选项,在预防跨站点请求,将其勾掉即可。
来源:https://blog.csdn.net/u011019726/article/details/52050191
0
投稿
猜你喜欢
- 一、简介简单记录一下存储过程的使用。存储过程是预编译SQL语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程会放
- 使用方法很简单,如果你有两个站,把这段代码放在访问高的那个站来刷自己的新站,放在那个文件里面呢?就放在INDEX里面吧.或者公用的头或者尾!
- 一、使用xls和xlsx处理Excel表格xls是excel2003及以前版本所生成的文件格式;xlsx是excel2007及以后版本所生成
- InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。下面是已知的两者之间的差别,仅供参考。1.Inn
- 目录1. 安装方法2. 简单示例3. 兼容字典的所有操作4. 设置返回默认值5. 工厂函数自动创建key6. 序列化的支持字典是 Pytho
- yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都
- 拼接字符串使用“+”运算符可完成对多个字符串的拼接,“+”运算符可以连接多个字符串并产生一个字符串对象。字符串不允许直接与其他类型数据拼接。
- 1.webpack里面配置自动注册组件第一个参数是匹配路径,第二个是深度匹配,第三个是匹配规则const requireComponent
- 前言Python 的random模块包含许多随机数生成器。random是Python标准库之一,直接导入即可使用。本文介绍random中常用
- 类 型描 述EmptyVariable 没有被初始化,它是数字的话,它的值就为0,如果它是字符串,那么它的值就为1N
- exam = { 'math': '95', 'eng': '96',
- 1.首先安装 “Python” 插件2.安装 pylint 语法检查器推荐安装在当前的 Python
- 本文实例讲述了PHP实现基于3DES算法加密解密字符串。分享给大家供大家参考,具体如下:3DES(或称为Triple DES)是三重数据加密
- 前言因为前面的文章中已经涉及到了登录智慧校园的验证码处理问题,所以本文将略过此过程。如登录时遇到验证码的情况,请参考此文。其实第一次使用有验
- 最近在做webIM,嵌入到OA系统,由于WEBIM处在独立页面,所以如果多次点击就会出现多个页面,这样在IE6下,服务器推送会认不到页面.所
- 本文实例为大家分享了Python实现打砖块游戏的具体代码,供大家参考,具体内容如下#导入模块import pygamefrom pygame
- mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库
- MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面
- 关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构。主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主
- 今天把Ext.js源码又读了一遍,不过这次比较认真。看完代码,有了不少收获也遇到不少问题。主要总结如下:1、document.execCom