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中使用中文的方法
Feb 19 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
python:socket传输大文件示例
Jan 18 Python
详解python中executemany和序列的使用方法
Aug 12 Python
Python生成短uuid的方法实例详解
May 29 Python
python遍历小写英文字母的方法
Jan 02 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
python__new__内置静态方法使用解析
Jan 07 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
提高python代码运行效率的一些建议
Sep 29 Python
python+openCV对视频进行截取的实现
Nov 27 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
js实现搜索栏效果
2018/11/16 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python实现抽奖小程序
2020/04/15 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
Python-split()函数实例用法讲解
2020/12/18 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
中学生励志演讲稿
2014/04/26 职场文书
环保公益策划方案
2014/08/15 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
2016教师节感恩话语
2015/12/09 职场文书
Python制作表白爱心合集
2022/01/22 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python