Η κυκλοφορία του PVS-Studio 7.04 συνέπεσε με την κυκλοφορία της προσθήκης Warnings Next Generation 6.0.0 για το Jenkins. Μόλις σε αυτήν την έκδοση, το Warnings NG Plugin πρόσθεσε υποστήριξη για τον στατικό αναλυτή PVS-Studio. Αυτό το πρόσθετο οπτικοποιεί δεδομένα προειδοποίησης από τον μεταγλωττιστή ή άλλα εργαλεία ανάλυσης στο Jenkins. Αυτό το άρθρο θα περιγράψει λεπτομερώς τον τρόπο εγκατάστασης και διαμόρφωσης αυτού του πρόσθετου για χρήση με το PVS-Studio και θα περιγράψει επίσης τις περισσότερες από τις δυνατότητές του.
Εγκατάσταση της προσθήκης Warning Next Generation στο Jenkins
Από προεπιλογή, το Jenkins βρίσκεται στο
Στη συνέχεια, επιλέξτε το στοιχείο "Διαχείριση προσθηκών" και ανοίξτε την καρτέλα "Διαθέσιμο":
Στην επάνω δεξιά γωνία στο πεδίο φίλτρου, πληκτρολογήστε "Προειδοποιήσεις επόμενης γενιάς":
Βρείτε την προσθήκη στη λίστα, επιλέξτε το πλαίσιο στα αριστερά και κάντε κλικ στην «Εγκατάσταση χωρίς επανεκκίνηση»:
Θα ανοίξει η σελίδα εγκατάστασης της προσθήκης. Εδώ θα δούμε τα αποτελέσματα της εγκατάστασης του πρόσθετου:
Δημιουργία νέας εργασίας στο Jenkins
Τώρα ας δημιουργήσουμε μια εργασία με δωρεάν διαμόρφωση. Στην κύρια σελίδα του Jenkins, επιλέξτε "Νέο στοιχείο". Εισαγάγετε το όνομα του έργου (για παράδειγμα, WTM) και επιλέξτε το στοιχείο "Έργο ελεύθερου στυλ".
Κάντε κλικ στο "Ok", μετά από το οποίο θα ανοίξει η σελίδα ρύθμισης εργασιών. Στο κάτω μέρος αυτής της σελίδας, στο στοιχείο "Ενέργειες μετά την κατασκευή", ανοίξτε τη λίστα "Προσθήκη ενέργειας μετά τη δημιουργία". Στη λίστα, επιλέξτε "Εγγραφή προειδοποιήσεων μεταγλωττιστή και αποτελεσμάτων στατικής ανάλυσης":
Στην αναπτυσσόμενη λίστα του πεδίου "Εργαλείο", επιλέξτε "PVS-Studio" και, στη συνέχεια, κάντε κλικ στο κουμπί αποθήκευσης. Στη σελίδα εργασιών, κάντε κλικ στο "Δημιουργία τώρα" για να δημιουργήσετε έναν φάκελο στον χώρο εργασίας στο Jenkins για την εργασία μας:
Λήψη αποτελεσμάτων κατασκευής έργου
Σήμερα συνάντησα το έργο dotnetcore/WTM στις τάσεις του Github. Το κατέβασα από το Github, το έβαλα στον κατάλογο κατασκευής WTM στο Jenkins και το ανέλυσα στο Visual Studio χρησιμοποιώντας τον αναλυτή PVS-Studio. Μια λεπτομερής περιγραφή της χρήσης του PVS-Studio στο Visual Studio παρουσιάζεται στο ομώνυμο άρθρο:
Έτρεξα το έργο build στο Jenkins μερικές φορές. Ως αποτέλεσμα, εμφανίστηκε ένα γράφημα στην επάνω δεξιά γωνία της σελίδας εργασιών WTM στο Jenkins και ένα στοιχείο μενού εμφανίστηκε στα αριστερά Προειδοποιήσεις PVS-Studio:
Όταν κάνετε κλικ στο γράφημα ή σε αυτό το στοιχείο μενού, ανοίγει μια σελίδα με την απεικόνιση της αναφοράς του αναλυτή PVS-Studio χρησιμοποιώντας την προσθήκη Warnings Next Generation:
Σελίδα αποτελεσμάτων
Υπάρχουν δύο γραφήματα πίτας στο επάνω μέρος της σελίδας. Στα δεξιά των γραφημάτων βρίσκεται το παράθυρο γραφήματος. Παρακάτω είναι ένας πίνακας.
Το αριστερό γράφημα πίτας δείχνει την αναλογία προειδοποιήσεων διαφορετικών επιπέδων σοβαρότητας, το δεξί δείχνει την αναλογία νέων, μη διορθωμένων και διορθωμένων προειδοποιήσεων. Υπάρχουν τρία γραφήματα. Το εμφανιζόμενο γράφημα επιλέγεται χρησιμοποιώντας τα βέλη αριστερά και δεξιά. Τα δύο πρώτα γραφήματα δείχνουν τις ίδιες πληροφορίες με τα γραφήματα και το τρίτο δείχνει την αλλαγή στον αριθμό των ειδοποιήσεων.
Μπορείτε να επιλέξετε συγκροτήματα ή ημέρες ως σημεία γραφήματος.
Είναι επίσης δυνατό να περιορίσετε και να επεκτείνετε το χρονικό εύρος του γραφήματος για να δείτε δεδομένα για μια συγκεκριμένη περίοδο:
Μπορείτε να αποκρύψετε γραφήματα ορισμένων μετρήσεων κάνοντας κλικ στον προσδιορισμό μέτρησης στο υπόμνημα του γραφήματος:
Γράφημα μετά την απόκρυψη της μέτρησης "Κανονική":
Ακολουθεί ένας πίνακας που εμφανίζει τα δεδομένα της αναφοράς του αναλυτή. Όταν κάνετε κλικ σε έναν τομέα ενός γραφήματος πίτας, ο πίνακας φιλτράρεται:
Ο πίνακας έχει πολλές καρτέλες για φιλτράρισμα δεδομένων. Σε αυτό το παράδειγμα, είναι διαθέσιμο το φιλτράρισμα κατά χώρο ονομάτων, αρχείο, κατηγορία (όνομα ειδοποίησης). Στον πίνακα μπορείτε να επιλέξετε πόσες προειδοποιήσεις θα εμφανίζονται σε μία σελίδα (10, 25, 50, 100):
Είναι δυνατό να φιλτράρετε δεδομένα από τη συμβολοσειρά που έχετε εισαγάγει στο πεδίο «Αναζήτηση». Παράδειγμα φιλτραρίσματος με τη λέξη "Βάση":
Στην καρτέλα "Προβλήματα", όταν κάνετε κλικ στο σύμβολο συν στην αρχή της σειράς του πίνακα, θα εμφανιστεί μια σύντομη περιγραφή της προειδοποίησης:
Η σύντομη περιγραφή περιέχει έναν σύνδεσμο προς έναν ιστότοπο με λεπτομερείς πληροφορίες σχετικά με αυτήν την προειδοποίηση.
Όταν κάνετε κλικ στις τιμές στις στήλες «Πακέτο», «Κατηγορία», «Τύπος», «Σοβαρότητα», τα δεδομένα του πίνακα φιλτράρονται από την επιλεγμένη τιμή. Φιλτράρισμα κατά κατηγορία:
Η στήλη "Ηλικία" εμφανίζει πόσες κατασκευές επέζησαν αυτής της προειδοποίησης. Κάνοντας κλικ στην τιμή στη στήλη Ηλικία θα ανοίξει η σελίδα κατασκευής όπου εμφανίστηκε για πρώτη φορά αυτή η προειδοποίηση.
Κάνοντας κλικ σε μια τιμή στη στήλη "Αρχείο" θα ανοίξει ο πηγαίος κώδικας του αρχείου στη γραμμή με τον κωδικό που προκάλεσε την προειδοποίηση. Εάν το αρχείο δεν βρίσκεται στον κατάλογο κατασκευής ή μετακινήθηκε μετά τη δημιουργία της αναφοράς, το άνοιγμα του πηγαίου κώδικα του αρχείου δεν θα είναι δυνατό.
Συμπέρασμα
Το Warnings Next Generation αποδείχθηκε ότι ήταν ένα πολύ χρήσιμο εργαλείο οπτικοποίησης δεδομένων στο Jenkins. Ελπίζουμε ότι η υποστήριξη για το PVS-Studio από αυτήν την προσθήκη θα βοηθήσει πολύ όσους χρησιμοποιούν ήδη το PVS-Studio και επίσης θα προσελκύσει την προσοχή άλλων χρηστών Jenkins στη στατική ανάλυση. Και αν η επιλογή σας πέσει στο PVS-Studio ως στατικό αναλυτή, θα χαρούμε πολύ. Σας προσκαλούμε
Εάν θέλετε να μοιραστείτε αυτό το άρθρο με ένα αγγλόφωνο κοινό, χρησιμοποιήστε τον σύνδεσμο μετάφρασης: Valery Komarov.
Πηγή: www.habr.com