用Python操作Jenkins

1、封装了一个jenkins api函数,基本满足操作jenkins

Jenkins_Api.py

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

jenkins_server_url = 'https://jenkins.myscrm.cn/'   # jenkins地址
user_id = 'username'    # 登陆jenkins的用户名
api_token = 'xxxxxxxxxxxx'  # 登陆jenkins后,在用户名>设置>API Token,下可以生成一个token


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)
        return item_number   # 返回的是启动任务列队号,不是构建号,下面这个方法才是获取构建编号

    # 获取启动任务对应的构建编号
    def build_number(self,item_number):
        build_info = self.server.get_queue_item(item_number)
        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)

2、使用

from Jenkins_Api import jenkins_job_build

# 实例化jenkins对象
job = jenkins_job_build()
# 启动构建任务,第二个参数是非必填的,看jenkins任务是否需要传
item_numb=job.build_jenkins_job("xxname",{"branchName":"master"}) 
# 获取构建编号
get_build_number = job.build_number(item_numb)
# 判断任务是否正在构建,如果在构建就等待10秒
while job.job_is_building(image_build_job, build_number) is True:
    time.sleep(10)
# 构建完成后,获取构建结果
get_build_status = job.get_job_build_status("xxname",get_build_number)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值