python调用jenkins

目录

1下载python包

2使用

1、初始化

2、构建项目

3、参数化构建项目

4、停止一个正在运行的项目

5、激活项目状态为可构建

6、变更项目状态为不可构建

7、删除项目

8、获取项目当前构建的最后一次编号

9、通过构建编号获取任务状态

10、获取项目控制台日志

11、获取项目测试报告

3封装 


1下载python包

pip install python-jenkins

2使用

1、初始化

jk = jenkins.Jenkins(url='Jenkins地址', username='用户名', password='授权令牌')

2、构建项目

jk.build_job(name='构建的job名称')

3、参数化构建项目

jk.build_job(name='构建的job名称', parameters='构建的参数,字典类型')

4、停止一个正在运行的项目

jk.stop_build('job名称', '构建编号ID')

5、激活项目状态为可构建

jk.enable_job('job名称')

6、变更项目状态为不可构建

jk.disable_job('job名称')

7、删除项目

jk.delete_job('job名称')

8、获取项目当前构建的最后一次编号

last_build_number = jk.get_job_info('job名称')['lastBuild']['number']

9、通过构建编号获取任务状态

status = jk.get_build_info('job名称', last_build_number)['result']
状态有4种:SUCCESS|FAILURE|ABORTED|pending

10、获取项目控制台日志

result = jk.get_build_console_output(name='job名称', number=last_build_number)

11、获取项目测试报告

result = jk.get_build_test_report(name='job名称', number=last_build_number)

3封装 

# -*- coding:utf-8 -*-
import time
import jenkins

# jenkins地址
jenkins_server_url = 'http://127.0.0.1:8081/'
# 登陆jenkins的用户名
user_id = '####'
# 登陆jenkins后,在用户名>设置>API Token,下可以生成一个token
api_token = 'm###'


class jenkins_job_build(object):
    def __init__(self):
        # 初始化jenkins对象,连接远程的jenkins master server
        self.server = jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)

    # 启动任务
    def build_jenkins_job(self, job_name, parameters=None):
        item_number = self.server.build_job(job_name, parameters=parameters)
        # print(item_number)
        return item_number  # 返回的是启动任务列队号,不是构建号,下面这个方法才是获取构建编号

    # 获取启动任务对应的构建编号
    def build_number(self, item_number):
        while True:
            time.sleep(1)
            build_info = self.server.get_queue_item(int(item_number))
            print('build',build_info)
            if 'executable' in build_info:
                build_number = build_info['executable']["number"]
                return build_number

    # 获取jenkins任务最后次构建号
    def get_job_lastBuild_number(self, job_name):
        lastBuild_number = self.server.get_job_info(job_name)['lastBuild']['number']
        return lastBuild_number

    # 判断任务是否构建完成,正在构建返回的是True
    def job_is_building(self, job_name, build_number):
        is_building = self.server.get_build_info(job_name, build_number)['building']
        return is_building

    # 获取构建完成后的结果
    def get_job_build_status(self, job_name, build_number):
        job_status = self.server.get_build_info(job_name, build_number)['result']
        return job_status

    # 获取所有正在构建中的jenkins任务
    def get_all_building_jobs(self):
        building_jobs = self.server.get_running_builds()
        return building_jobs

    # 获取所有jenkins任务
    def get_all_jobs(self):
        jobs = self.server.get_jobs()
        return jobs

    # 获取jenkins构建时控制台输出的日志
    def get_build_job_log(self, job_name, job_number):
        return self.server.get_build_console_output(job_name, job_number)


example_jenkins = jenkins_job_build()
# # 启动任务
# begin = example_jenkins.build_jenkins_job("自动化测试")
# print(begin)
# 获取启动任务对应的构建编号
# buld_number = example_jenkins.build_number(11)
# print(buld_number)
# 获取jenkins任务最后次构建号
# num = example_jenkins.get_job_lastBuild_number("自动化测试")
# print(num)
# # 判断任务是否构建完成,正在构建返回的是True
# result1 = example_jenkins.job_is_building("自动化测试",num)
# print(result1)
# # 获取构建完成后的结果
# result = example_jenkins.get_job_build_status("自动化测试",num)
# print(result)
# # 获取所有jenkins任务
# all_task = example_jenkins.get_all_jobs()
# print(all_task)
# # 获取jenkins构建时控制台输出的日志
# console = example_jenkins.get_build_job_log("自动化测试",num)
# print(console)

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值