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 相关文章推荐
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
python+numpy按行求一个二维数组的最大值方法
Jul 09 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
python中get和post有什么区别
Jun 19 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python3中编码获取网页的实例方法
Nov 16 Python
python中filter,map,reduce的作用
Jun 10 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP实现微信对账单处理
2018/10/01 PHP
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
javascript实现留言板功能
2020/02/08 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
python连接mysql实例分享
2016/10/09 Python
pycharm安装图文教程
2017/05/02 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
Python列表切片常用操作实例解析
2020/03/10 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
物业管理计划书
2014/01/10 职场文书
公司请假条范文
2014/04/11 职场文书
运动会方队口号
2014/06/07 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
JS数组去重详情
2021/11/07 Javascript