
De release van PVS-Studio 7.04 viel samen met de release van de Warnings Next Generation 6.0.0 plugin voor Jenkins. In deze release heeft de Warnings NG Plugin ondersteuning toegevoegd voor de statische analyzer PVS-Studio. Deze plugin visualiseert gegevens over compiler waarschuwingen of andere analysetools in Jenkins. In dit artikel wordt in detail uitgelegd hoe je deze plugin installeert en configureert voor gebruik met PVS-Studio, evenals de meeste functies ervan.
Installatie van de Warnings Next Generation Plugin in Jenkins
Standaard is Jenkins bereikbaar op . Op de hoofdpagina van Jenkins kiezen we linksboven voor 'Manage Jenkins':

Vervolgens kiezen we 'Manage Plugins', en openen het tabblad 'Available':

Rechtsboven in het filterveld typen we 'Warnings Next Generation':

We vinden de plugin in de lijst, zetten een vinkje aan de linkerkant en klikken op 'Install without restart':

Er opent een pagina met plugin-installaties. Hier zien we de resultaten van de plugin-installatie:

Een nieuwe taak aanmaken in Jenkins
Laten we nu een taak met vrije configuratie aanmaken. Op de hoofdpagina van Jenkins kiezen we 'New Item'. We voeren de projectnaam in (bijvoorbeeld, WTM) en kiezen 'Freestyle project'.

We klikken op 'Ok', waarna de pagina voor taakconfiguratie opent. Onderaan deze pagina openen we in de sectie 'Post-build Actions' de lijst 'Add post-build action'. We kiezen 'Record compiler warnings and static analysis results' in de lijst:

In het dropdownmenu van het veld 'Tool' kiezen we 'PVS-Studio' en klikken dan op de knop om op te slaan. Op de taakpagina klikken we op 'Build Now' om een map aan te maken in de workspace van Jenkins voor onze taak:

Resultaten van de projectbuild verkrijgen
Vandaag kwam ik een project tegen op Github: dotnetcore/WTM. Ik heb het gedownload van Github, in de builddirectory WTM in Jenkins geplaatst en geanalyseerd in Visual Studio met behulp van de PVS-Studio analyzer. Een gedetailleerde beschrijving van het gebruik van PVS-Studio in Visual Studio is te vinden in het artikel met dezelfde naam: .
Ik heb het project in Jenkins een paar keer gebouwd. Als gevolg hiervan verscheen er rechtsboven op de taakpagina WTM in Jenkins een grafiek, en aan de linkerkant verscheen het menu-item PVS-Studio Warnings:

Wanneer je op de grafiek of dit menu-item klikt, opent er een pagina met de visualisatie van het rapport van de PVS-Studio analyzer via de Warnings Next Generation plugin:

Pagina met resultaten
Bovenaan de pagina bevinden zich twee cirkeldiagrammen. Rechts van de diagrammen is er een grafiekenvenster. Onderaan bevindt zich een tabel.

In het linker circulaire diagram wordt de verhouding van waarschuwingen van verschillende niveaus van gevaar weergegeven, en in het rechter diagram de verhouding van nieuwe, onopgeloste en opgeloste waarschuwingen. Er zijn drie grafieken. De keuze van de weergegeven grafiek gebeurt met de pijlen aan de zijkant. De eerste twee grafieken tonen dezelfde informatie als de diagrammen, en de derde toont de verandering in het aantal waarschuwingen.

Als gegevenspunten voor de grafieken kunnen builds of dagen worden gekozen.
Er is ook de mogelijkheid om het tijdsbereik van de grafiek te verkleinen of uit te breiden om gegevens voor een bepaalde periode te zien:

Specifieke grafieken voor bepaalde metrics kunnen worden verborgen door op de aanduiding van de metric in de legenda van de grafiek te klikken:

Grafiek na het verbergen van de metric 'Normal':

Onderaan bevindt zich een tabel die de gegevens van het analyreport weergeeft. Door op een sector van het cirkeldiagram te klikken, wordt de tabel gefilterd:

In de tabel zijn verschillende tabbladen beschikbaar voor het filteren van gegevens. In dit voorbeeld is filtering op namespace, bestand, categorie (naam van de waarschuwing) beschikbaar. In de tabel kan worden gekozen hoeveel waarschuwingen per pagina worden weergegeven (10, 25, 50, 100):

Er is een mogelijkheid om gegevens te filteren op basis van een ingevoerde tekst in het veld 'Search'. Voorbeeld van filtering op het woord 'Base':

Op het tabblad 'Issues' verschijnt bij het klikken op het plusje aan het begin van de tabelrij een korte beschrijving van de waarschuwing:

In de korte beschrijving staat een link naar de website met meer informatie over deze waarschuwing.
Wanneer op waarden in de kolommen 'Package', 'Category', 'Type', 'Severity' wordt geklikt, wordt de tabel gefilterd op de geselecteerde waarde. Filtering op categorie:

In de kolom 'Age' wordt weergegeven hoeveel builds deze waarschuwing heeft overleefd. Door op de waarde in de kolom 'Age' te klikken, wordt de pagina van de build geopend waarin deze waarschuwing voor het eerst verscheen.
Bij het klikken op de waarde in de kolom 'File' wordt de broncode van het bestand geopend op de regel met de code die de waarschuwing heeft veroorzaakt. Als het bestand niet in de builddirectory aanwezig is of na het maken van het rapport is verplaatst, kan de broncode van het bestand niet worden geopend.

Conclusie
Warnings Next Generation is een zeer handig hulpmiddel voor het visualiseren van gegevens in Jenkins. We hopen dat de ondersteuning van PVS-Studio door deze plugin zeer nuttig zal zijn voor degenen die al gebruikmaken van PVS-Studio en ook de aandacht van andere Jenkins-gebruikers zal trekken naar statische analyse. En als je als statische analyzer voor PVS-Studio kiest, zijn we daar erg blij mee. We nodigen je uit ons hulpmiddel.
Als je dit artikel wilt delen met een Engelstalig publiek, gebruik dan alsjeblieft de link naar de vertaling: Valery Komarov. .
Bron: habr.com
