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中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
Windows下python3.7安装教程
Jul 31 Python
python使用正则筛选信用卡
Jan 27 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
使用python接入微信聊天机器人
Mar 31 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
python中的插入排序的简单用法
Jan 19 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库获取用户ip地理位置
2013/10/27 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
django rest framework之请求与响应(详解)
2017/11/06 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
python如何更新包
2020/06/11 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
党员公开承诺书和承诺事项
2014/03/25 职场文书
企业标语口号
2014/06/10 职场文书
先进员工获奖感言
2014/08/14 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
公司离职证明范本
2014/10/17 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Redis基本数据类型String常用操作命令
2022/06/01 Redis