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中pygame模块用法实例
Oct 09 Python
python 性能优化方法小结
Mar 31 Python
tensorflow中next_batch的具体使用
Feb 02 Python
一看就懂得Python的math模块
Oct 21 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
python用match()函数爬数据方法详解
Jul 23 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
python代码实现猜拳小游戏
Nov 30 Python
Python访问Redis的详细操作
Jun 26 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/10/09 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
python处理html转义字符的方法详解
2016/07/01 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
解读python如何实现决策树算法
2018/10/11 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
2014最新离职证明范本
2014/09/12 职场文书
品质保证书格式
2015/02/28 职场文书
新兵入伍决心书
2015/09/22 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
新手初学Java网络编程
2021/07/07 Java/Android
JavaScript文档对象模型DOM
2021/11/20 Javascript