上一篇里写了 一个简单封装的jenkins API

这里我就直接调用这个了,做一个简单的发布

这个东西其实是模拟jenkins打包发布所用的时间,所以要比你直接用jenkins的时间略长一点就行了(时间短了,抓到的是上一次的构建结果,他是构建完了,才会生成这个build_info的json)
所以我写了个判断,因为还不会用websocket获取实时日志(consoleOutput)
这样可以模拟一下构建所用时间,后边才可以获取到当前的构建结果

直接上代码

#!/usr/bin/python

import time
import tqdm

from common.JenkinsHelper import JenkinsHelper #这里就引用封装好的API

jenkins = JenkinsHelper('http://ip:port/jenkins', username='username',
                        password='110d3a9427b**********72094a9a3') #构造一个jenkins对象,指定URL、用户名和token

#定义项目名字和版本号,这都得是Jenkins里面配置好的,必须一样的,不能搞错

job_name = 'vue-project'

parameters = {
    'version': '19544'
}


def get_sleep_time(project_time):
    if 'ops' in project_time:
        return 10
    elif 'static' in project_time:
        return 15
    elif 'vue' in project_time:
        return 200
    else:
        return 200


jenkins.build_job(job_name=job_name, parameters=parameters) #开始构建项目
print('正在构建项目请等待...')
for i in tqdm.tqdm(range(get_sleep_time(job_name))): # 我给他加了一个进度条,更好看一点
    time.sleep(1)
number = int(jenkins.get_job_info(job_name))
print('项目ID是%s' % (str(number)))
print('获取项目构建状态...')
print(jenkins.get_build_info(job_name, number))
print('构建项目完成 ...')
print('获取项目构建结果:%s' % (jenkins.get_build_info(job_name, number)['result'])) # 到这里就构建完成了
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐