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实现的一个火车票转让信息采集器
Jul 09 Python
Python中字符编码简介、方法及使用建议
Jan 08 Python
5种Python单例模式的实现方式
Jan 14 Python
Django框架实现的分页demo示例
May 25 Python
Python for循环及基础用法详解
Nov 08 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
python实现QQ邮箱发送邮件
Mar 06 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
Django中的AutoField字段使用
May 18 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
python实现二分查找算法
Sep 18 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生成短域名函数
2015/03/23 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
完善的jquery处理机制
2016/02/21 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
Python中的pprint折腾记
2015/01/21 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Python补齐字符串长度的实例
2018/11/15 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
大学生就业自我推荐信
2014/05/10 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
学生检讨书如何写
2014/10/30 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
单身证明格式样本
2015/06/15 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python