Как добиться прогресса успешной сборки через API Jenkins Python - PullRequest
0 голосов
/ 16 апреля 2020

Я написал python код для получения информации о сборке. Я печатаю резюме успешных и неудачных сборок.

from prettytable import PrettyTable
t = PrettyTable(['Job name','Successful','Failed','Unstable','Aborted','Total Builds','Failure Rate'])
t1 = PrettyTable(['Status', 'Job name','Build #','Date','Duration','Node','User'])

aggregation ={}

jobs = server.get_all_jobs(folder_depth=None)
for job in jobs:
    print(job['fullname'])
    aggregation[job['fullname']] = {"success" : 0 , "failure" : 0 , "aborted" : 0, "unstable":0}
    info = server.get_job_info(job['fullname'])
    # Loop over builds
    builds = info['builds']
    for build in builds:


            information = server.get_build_info(job["fullname"], 
                                        build['number'])

            if "SUCCESS" in information['result']:

                aggregation[job['fullname']]['success']  =  str(int(aggregation[job['fullname']]['success']) + 1)

            if "FAILURE" in information['result']:

                aggregation[job['fullname']]['failure']  =  str(int(aggregation[job['fullname']]['failure']) + 1)

            if "ABORTED" in information['result']:

                aggregation[job['fullname']]['aborted']  =  str(int(aggregation[job['fullname']]['aborted']) + 1)
            if "UNSTABLE" in information['result']:

                aggregation[job['fullname']]['unstable']  =  str(int(aggregation[job['fullname']]['unstable']) + 1)

            t1.add_row([ information['result'], job['fullname'],information["id"],datetime.fromtimestamp(information['timestamp']/1000),information["duration"],"master",information["actions"][0]["causes"][0]["userName"]])

    total_build = int(aggregation[job['fullname']]['success'])+int(aggregation[job['fullname']]['failure'])
    t.add_row([job["fullname"], aggregation[job['fullname']]['success'],aggregation[job['fullname']]['failure'],aggregation[job['fullname']]['aborted'],aggregation[job['fullname']]['unstable'],total_build,(float(aggregation[job['fullname']]['failure'])/total_build)*100])

with open('result', 'w') as w:
    w.write(str(t1))
    w.write(str(t))

Вот как выглядит вывод: enter image description here

А вот так выглядит Windows команда пакетного выполнения:

cd E:\airflowtmp
conda activate web_scraping
python hello.py

hello.py печатает привет мир. Если я добавлю print counter = 100 или что-то вроде этого, то как мне вернуть его и распечатать в этой результирующей таблице.

Редактировать:

Я пытаюсь получить какую-то переменную из кода для отображения. Например, если я удаляю страницы, и скребок успешно запустился, я хочу узнать количество страниц, которые он очистил. Вы можете думать об этом как о простом счетчике. Есть ли способ вернуть переменную из Jenkins в python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...