python的Jenkins接口调用方式
作者:很长很长的名字 发布时间:2022-02-23 11:26:23
标签: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的安全配置里勾选里下面这个选项,在预防跨站点请求,将其勾掉即可。
来源:https://blog.csdn.net/u011019726/article/details/52050191
0
投稿
猜你喜欢
- 前言:对于 图片处理,在日常生活中我们常常能够看到。比如发个朋友圈之前,我们需要给自己的照片加个滤镜;在上传头像时候,需要对照片进行裁剪,这
- 1、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Applicatio
- 1.由于不支持博客首页到文章详情页的跳转,只能打开第一篇文章的详情页2.所以需要做以下工作:设计文章详情页的url,完善视图函数逻辑,实现首
- 如下所示:import matplotlib.pyplot as pltimport numpy as npx = [11422,11360
- 前言学会向程序中添加必要的注释,也是很重要的。注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代
- 安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安装firebug:www.firebug.
- 查询效率分析:子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。如果要用子查询,那就用E
- 在一个大型的项目中,不可避免会出现操作时间的业务,比如时间的格式化,比如时间的加减,我们一般会直接使用moment.js库来做,毕竟稳定可靠
- 第一种:利用functools 工具处理import functoolsresult = (lambda k: functools.redu
- <?php /* *@author 夜无眠  
- 作为微软推出的网页与数据库解决方案,ASP由于有微软得天独厚的操作系统等技术后盾支持,因此得到了迅速的发展,并且正受到越来越多的欢迎,在目前
- 引文之前有一篇文章给大家带来了SQL注入的基本知识点以及分类,包含的面比较广但是不深入,于是我准备详细讲讲每一种类型的SQL注入的详细利用方
- 当1980年Three Rivers公司第一次推出图形用户界面Perq,产生GUI这个概念的时候,不知道他们有没有想过今天图形界面设计竟然会
- 一、基本概述目前电脑上已经下载了MongoDB数据库、navicat for mongodb作为mongoDB的可视化工具,形如navica
- 关联模型(多对多)多对多关系(抽象)例:一篇文章可能有多个关键词,一个关键词可能被多个文章使用。 关键词表:字段id主键字段keyword关
- 直接上代码:<span style="font-family: arial,helvetica,sans-serif; fo
- 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联
- 本文实例讲述了Python扫描IP段查看指定端口是否开放的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/local/bin/p
- 方法来源于土豆网的导航,在这里纪录一下实现的思路。主要是利用 position 属性的 absolute 和 relative 配
- 孟宪会 由于XML(可扩展标记语言:eXtensible Markup Language)真正的平台无关性,它正在逐渐成为数据传