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/

posted @ 2023-06-09 18:54  一个运维  阅读(173)  评论(0编辑  收藏  举报