jenkinsapi的基础用法
前言:
想要用脚本或代码来触发Jenkins工程?
不妨看看这里~
模块安装
pip install jenkinsapi
或者
easy_install jenkinsapi
基础案例
from jenkinsapi.jenkins import Jenkins
jenkins = Jenkins(
"http://*****.com:8080/",
username="****",
password="****",
use_crumb=True
)
params = {'Operation': '1', 'Certificate': '2'} #构建参数,可以通过各种方式获取
job = jenkins.get_job("【TEST】") #获取目标工程
job_running = job.invoke(build_params=params) #附加参数并启动工程
if job_running.is_queued() or job_running.is_running(): #判断当任务在排队中或者正在运行中...
job_running.block_until_complete() #会阻塞进程,直到工程结束
last_job = job.get_last_build() #获取目标工程的最后一次构建
print(last_job.is_good()) #获取构建结果
print(last_job.get_console()) #获取构建console输出
字段说明
1.首先定义一个Jenkins对象,需要指定你的Jenkins地址,用户名及密码,use_crumb是用在Jenkins开启了跨域保护机制的时候,需要指定的参数,一般高版本的Jenkins会默认开启,且改起来不方便,也不安全,这里还是建议使用这种模式;
2.params是我Jenkins的构建参数,一般参数化构建的场景比较多,如果你是傻瓜式一键构建,这里就为空好了~
3.“【TEST】”是我Jenkins工程的名字
排障
1.console中文乱码问题
笔者在测试过程中,遇到过打印console乱码问题,经过查询,是这里源码中使用的字符集不对,所以我在本地做了微调,找到模块安装路径,下面有个build.py组件,修改第532行:
return content.decode("ISO-8859-1")
换成
return content.decode("utf8")
扩展
这里给出Jenkins官方以及模块的官方文档入口:
jenkinsapi模块文档:https://jenkinsapi.readthedocs.io/en/latest/build.html
jenkins公共接口文档:https://www.jenkins.io/doc/book/using/remote-access-api/