python的Jenkins接口调用方式


Posted in Python onMay 12, 2020

本来非常喜欢偷懒

最好就是不干活那种

所以最近在研究把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 = '''			#本?抛约旱?enkins的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 = '''		#本?诺牧硗庖桓?enkins的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的时候,需要对一些作业进行定时对构建

python的Jenkins接口调用方式

报错:

<title>Error 403 No valid crumb was included in the request</title>\n</head>\n<body><h2>HTTP ERROR 403</h2>

原因是在jenkins的安全配置里勾选里下面这个选项,在预防跨站点请求,将其勾掉即可。

python的Jenkins接口调用方式

以上这篇python的Jenkins接口调用方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python如何实现FTP功能
May 28 Python
python中sys模块是做什么用的
Aug 16 Python
python进度条显示之tqmd模块
Aug 22 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python实现计算器简易版
Dec 17 Python
jenkins+python自动化测试持续集成教程
May 12 #Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 #Python
基于Python的Jenkins的二次开发操作
May 12 #Python
Python-jenkins模块获取jobs的执行状态操作
May 12 #Python
Python-jenkins 获取job构建信息方式
May 12 #Python
python进行参数传递的方法
May 12 #Python
python输出数学符号实例
May 11 #Python
You might like
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
通过C++学习Python
2015/01/20 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
python僵尸进程产生的原因
2017/07/21 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python3 使用traceback定位异常实例
2020/03/09 Python
python实现ftp文件传输功能
2020/03/20 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
工作人员思想汇报
2014/01/09 职场文书
周年庆典主持词
2014/04/02 职场文书
教师考核材料
2014/05/21 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
接待员岗位职责
2015/02/13 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书