python的Jenkins接口调用方式

 更新时间:2020年05月12日 10:19:16   作者:很长很长的名字  
这篇文章主要介绍了python的Jenkins接口调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

本来非常喜欢偷懒

最好就是不干活那种

所以最近在研究把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 = '''			#本屌自己的jenkins的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 = '''		#本屌的另外一个jenkins的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的时候,需要对一些作业进行定时对构建

报错:

<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中openpyxl库用法详解

    python中openpyxl库用法详解

    openpyxl模块是一个读写Excel 文档的Python库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档,这篇文章主要介绍了python中openpyxl库用法详解,需要的朋友可以参考下
    2022-09-09
  • Python学习之元组的使用详解

    Python学习之元组的使用详解

    Python元组和列表很像,也是一个包含多个元素的集合,本文主要给大家介绍了关于Python中元组(Tuple)的使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python dataframe如何设置index

    Python dataframe如何设置index

    这篇文章主要介绍了Python dataframe如何设置index,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • PyCharm 安装与使用配置教程(windows,mac通用)

    PyCharm 安装与使用配置教程(windows,mac通用)

    很多小伙伴下载安装PyCharm后不会使用,这篇文章详细介绍了PyCharm安装与使用教程(windows,mac通用),需要的朋友可以参考下
    2021-05-05
  • python人工智能tensorflow常用激活函数Activation Functions

    python人工智能tensorflow常用激活函数Activation Functions

    这篇文章主要为大家介绍了python人工智能tensorflow常用激活函数Activation Functions的汇总介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python变量赋值的秘密分享

    Python变量赋值的秘密分享

    在Python中,我们令一个变量等于另外一个变量时,并不是把值传递给它,而是直接把指向的地址更改了,我们通过一个小例子来看看这个有趣的过程,需要的朋友可以参考下
    2018-04-04
  • Python使用selenium + headless chrome获取网页内容的方法示例

    Python使用selenium + headless chrome获取网页内容的方法示例

    这篇文章主要介绍了Python使用selenium + headless chrome获取网页内容的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 将python安装信息加入注册表的示例

    将python安装信息加入注册表的示例

    今天小编就为大家分享一篇将python安装信息加入注册表的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 浅谈keras中的后端backend及其相关函数(K.prod,K.cast)

    浅谈keras中的后端backend及其相关函数(K.prod,K.cast)

    这篇文章主要介绍了浅谈keras中的后端backend及其相关函数(K.prod,K.cast),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 探索Python库coconut轻松地编写函数式代码实例

    探索Python库coconut轻松地编写函数式代码实例

    本文将介绍Python Coconut的基本概念、语法特性和实际应用,同时提供丰富的示例代码,以帮助大家更好地理解和应用这个强大的工具
    2024-01-01

最新评论