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计算对角线有理函数插值的方法
May 07 Python
pycharm远程调试openstack代码
Nov 21 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
python requests使用socks5的例子
Jul 25 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
python实现按关键字筛选日志文件
Dec 24 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
Python基于numpy模块实现回归预测
May 14 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python3访问字典里的值实例方法
Nov 18 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
js定时器的使用(实例讲解)
2014/01/06 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
vue中进行微博分享的实例讲解
2019/10/14 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
车间统计员岗位职责
2014/01/05 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Django REST framework 限流功能的使用
2021/06/24 Python