Рэліз PVS-Studio 7.04 супаў з рэлізам плагіна Warnings Next Generation 6.0.0 для Jenkins. Якраз у гэтым рэлізе Warnings NG Plugin дадаў падтрымку статычнага аналізатара PVS-Studio. Гэты плягін візуалізуе дадзеныя аб папярэджаннях кампілятара або іншых інструментаў аналізу ў Jenkins. У гэтым артыкуле будзе падрабязна расказана як усталяваць і наладзіць дадзеную ўбудову для выкарыстання з PVS-Studio, а таксама апісана большасць яго магчымасцяў.
Устаноўка Warning Next Generation Plugin у Jenkins
Па змаўчанні Jenkins знаходзіцца па адрасе
Далей выбіраемы пункт "Manage Plugins", адкрываем закладку "Available":
У правым верхнім куце ў поле фільтра ўводны «Warnings Next Generation»:
Знаходзім убудову ў спісе, ставім злева галачку і ціснем "Install without restart":
Адкрыецца старонка ўстаноўкі плагінаў. На ёй мы ўбачым вынікі ўстаноўкі плагіна:
Стварэнне новай задачы ў Jenkins
Цяпер створым задачу са свабоднай канфігурацыяй. На галоўнай старонцы Jenkins абярэм "New Item". Увядзем імя праекта (напрыклад, WTM) і выберам пункт "Freestyle project".
Націснем "Ок", пасля чаго адкрыецца старонка налады задачы. Унізе гэтай старонкі ў пункце "Post-build Actions" адкрываем спіс "Add post-build action". У спісе выбіраемы "Record compiler warnings and static analysis results":
У выпадаючым спісе поля "Tool" выбіраем "PVS-Studio", пасля гэтага ціснем кнопку захаваць. На старонцы задачы ціснем "Build Now", каб стварылася тэчка ў workspace у Jenkins для нашай задачы:
Атрыманне вынікаў зборкі праекту
Сёння ў трэндах Github мне папаўся праект dotnetcore/WTM. Я загрузіў яго з Github, закінуў у зборачную дырэкторыю WTM у Jenkins і прааналізаваў у Visual Studio пры дапамозе аналізатара PVS-Studio. Падрабязнае апісанне выкарыстання PVS-Studio у Visual Studio прадстаўлена ў аднайменным артыкуле:
Запусціў зборку праекту ў Jenkins пару разоў. У выніку справа ўверсе на старонцы задачы WTM у Jenkins з'явіўся графік, а злева з'явіўся пункт меню PVS-Studio Warnings:
Пры націску на графік або гэты пункт меню адкрываецца старонка з візуалізацыяй справаздачы аналізатара PVS-Studio убудовай Warnings Next Generation:
Старонка з вынікамі
На старонцы зверху размешчаны дзве кругавыя дыяграмы. Справа ад дыяграм размешчана акно графікаў. Унізе размясцілася табліца.
На левай кругавой дыяграме адлюстроўваюцца суадносіны папярэджанняў рознага ўзроўню небяспекі, на правай - суадносіны новых, не выпраўленых і выпраўленых папярэджанняў. Ёсць тры графікі. Выбар які адлюстроўваецца графіка адбываецца пры дапамозе стрэлак злева і справа. Першыя два графікі адлюстроўваюць тую ж інфармацыю, што і дыяграмы, а трэці - змена колькасці папярэджанняў.
У якасці кропак графікаў можна абраць зборкі ці дні.
Таксама ёсць магчымасць звужаць і пашыраць часавы дыяпазон графіка, каб убачыць дадзеныя за пэўны прамежак:
Можна хаваць графікі вызначаных метрык па націску на абазначэнне метрыкі ў легендзе графіка:
Графік пасля ўтойвання метрыкі "Normal":
Унізе размешчана табліца, якая адлюстроўвае дадзеныя справаздачы аналізатара. Пры націску на сектар кругавой дыяграмы адбываецца фільтраванне табліцы:
У табліцы ёсць некалькі закладак для фільтрацыі дадзеных. У дадзеным прыкладзе даступна фільтраванне па namespace, файле, катэгорыі (імя папярэджання). У табліцы можна выбраць, якую колькасць папярэджанняў адлюстроўваць на адну старонку (10, 25, 50, 100):
Маецца магчымасць фільтрацыі дадзеных па радку, уведзенаму ў поле "Search". Прыклад фільтрацыі па слове "Base":
На закладцы «Issues» пры націску на плюсік у пачатку радка табліцы адлюструецца кароткае апісанне папярэджання:
Кароткае апісанне змяшчае спасылку на сайт з падрабязнай інфармацыяй па дадзеным папярэджанні.
Пры націску на значэнні ў слупках "Package", "Category", "Type", "Severity" адбываецца фільтраванне дадзеных табліцы па абраным значэнні. Фільтраванне па катэгорыі:
У слупку "Age" адлюстроўваецца колькі зборак перажыло дадзенае папярэджанне. Пры націску на значэнне ў слупку "Age" будзе адкрыта старонка зборкі, у якой упершыню з'явілася гэтае папярэджанне.
Пры націску на значэнне ў слупку "File" будзе адкрыты зыходны код файла на радку з кодам, які выклікаў папярэджанне. Калі файл адсутнічае ў зборачнай дырэкторыі ці быў перамешчаны пасля стварэння справаздачы, адкрыццё зыходнага кода файла апынецца немагчымым.
Заключэнне
Warnings Next Generation апынуўся вельмі зручнай прыладай візуалізацыі дадзеных у Jenkins. Спадзяемся, што падтрымка PVS-Studio гэтым убудовай вельмі дапаможа тым, хто ўжо выкарыстоўвае PVS-Studio, а таксама прыцягне ўвагу да статычнага аналізу астатніх карыстальнікаў Jenkins. І калі ў якасці статычнага аналізатара ваш выбар упадзе на PVS-Studio, мы будзем вельмі рады. Запрашаем
Калі хочаце падзяліцца гэтым артыкулам з англамоўнай аўдыторыяй, то прашу выкарыстаць спасылку на пераклад: Valery Komarov.
Крыніца: habr.com