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写的windows服务不能启动的问题
Apr 15 Python
Python中super的用法实例
May 28 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python微信好友数据分析详解
Nov 19 Python
Django如何防止定时任务并发浅析
May 14 Python
selenium处理元素定位点击无效问题
Jun 12 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
利用python求积分的实例
Jul 03 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
什么是Python中的匿名函数
Jun 02 Python
python 绘制场景热力图的示例
Sep 23 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Python代码的打包与发布详解
2014/07/30 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
python提取页面内url列表的方法
2015/05/25 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python实现简单俄罗斯方块
2020/03/13 Python
python 异步async库的使用说明
2020/05/04 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
极简的HTML5模版
2015/07/09 HTML / CSS
商务助理岗位职责
2013/11/13 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
淘宝好评语大全
2014/05/05 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
基于Redission的分布式锁实战
2022/08/14 Redis