python的Jenkins接口调用方式
作者:很长很长的名字 时间:2022-02-23 11:26:23
本来非常喜欢偷懒
最好就是不干活那种
所以最近在研究把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
标签:python,Jenkins,接口
0
投稿
猜你喜欢
python multiprocessing模块用法及原理介绍
2021-01-27 06:22:44
Django配置Mysql数据库连接的实现
2024-01-28 10:48:33
关于go-zero单体服务使用泛型简化注册Handler路由的问题
2023-08-30 20:19:08
ORACLE 分区表的设计
2009-08-15 10:56:00
python自动翻译实现方法
2022-01-01 08:03:31
python实现自动发送报警监控邮件
2023-02-02 06:17:15
mysql 让一个存储过程定时作业的代码
2024-01-26 18:35:28
Python使用Pandas处理测试数据的方法
2021-12-18 10:47:18
机器学习的框架偏向于Python的13个原因
2023-09-28 06:24:42
解决Python 写文件报错TypeError的问题
2022-09-18 06:54:26
Python进程的通信Queue、Pipe实例分析
2021-11-22 13:50:44
python将ansible配置转为json格式实例代码
2023-11-03 02:32:51
python 解压、复制、删除 文件的实例代码
2023-12-23 23:35:34
python代码实现备忘录案例讲解
2021-09-15 02:19:15
mysql5.7及mysql 8.0版本修改root密码的方法小结
2024-01-28 17:09:31
mysql仿oracle的decode效果查询
2024-01-12 22:04:00
浅谈Python2之汉字编码为unicode的问题(即类似\\xc3\\xa4)
2021-12-14 07:07:19
Python随手笔记之标准类型内建函数
2022-10-23 11:00:45
Django压缩静态文件的实现方法详析
2023-06-15 05:31:33
MySQL存储引擎简介及MyISAM和InnoDB的区别
2024-01-26 23:53:17