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 相关文章推荐
在Django中创建动态视图的教程
Jul 15 Python
Python中进程和线程的区别详解
Oct 29 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
Sanic框架路由用法实例分析
Jul 16 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Python logging模块handlers用法详解
Aug 14 Python
python中翻译功能translate模块实现方法
Dec 17 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 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
PHP 危险函数解释 分析
2009/04/22 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
Python中的pass语句使用方法讲解
2015/05/14 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python中的枚举类型示例介绍
2019/01/09 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
入党思想汇报
2014/01/05 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
学雷锋主题班会教案
2015/08/13 职场文书