AppVeyor-Integration
Entwicklungseffizienz steigern mit CppDepend- und AppVeyor-Integration
Dieses großartige ausführliche Tutorial basiert auf NDepend-Integration (CppDepend-ähnlich für .NET) geschrieben von Jimmy Pelletier, unten wiedergegeben mit freundlicher Genehmigung des Autors.
- Voraussetzungen & Annahmen
- Bereitstellen der Tools während des Builds
- CppDepend-Projekt erstellen
- Erstellen Sie Ihr Buildskript
- Einrichten von AppVeyor und unser erster Build
- Build fehlschlagen lassen
- Veröffentlichen des CppDepend-Berichts
In dieser Dokumentation gebe ich Schritt-für-Schritt-Anleitungen, wie Sie CppDepend zur Qualitätskontrolle und historischen Analyse in Ihre CI-Pipeline integrieren. Für die Qualitätskontrolle zeige ich, wie Sie Ihren Build bei Verletzung einer CppDepend-Regel fehlschlagen lassen, und für die historische Analyse veröffentlichen wir den CppDepend-Bericht als Build-Artefakt.
Voraussetzungen & Annahmen
Um die Schritte in diesem Artikel nachzuvollziehen, gibt es einige Voraussetzungen. Sie benötigen:
- Ein C/C++-Projekt, das in GitHub eingecheckt ist.
- Ein DevOps-Lizenzschlüssel. Um eine solche Datei zu erhalten, kontaktieren Sie uns unter support@codergears.com. Wenn Sie sich in der Testphase befinden, teilen Sie uns in der E-Mail Ihren Firmennamen und Ihre Postadresse mit. Wenn Sie einen DevOps-Lizenzschlüssel besitzen, teilen Sie uns Ihren Lizenzschlüssel in der E-Mail mit.
Ich setze außerdem voraus, dass Sie mit C/C++, Visual Studio und Git umgehen können.
Bereitstellen der Tools während des Builds
Um CppDepend als Teil Ihrer Build-Pipeline auszuführen, müssen Sie CppDepend.Console.exe verfügbar, um während des Builds zu laufen. Bei der Arbeit mit einem Cloud-Build-Agenten wie AppVeyor sind die Möglichkeiten zum Installieren von Tools und Einrichten der Umgebung begrenzt. Wir checken CppDepend einfach in die Quellcodeverwaltung ein. Zuerst den CppDepend-Installer herunterladen Kopieren Sie dann deren Inhalt in ein Tools-Verzeichnis. Ich habe meins in /tools/CppDepend. Sie müssen außerdem aktivieren: DevOps-Lizenzschlüssel.
CppDepend-Projekt erstellen
Um mit CppDepend zu arbeiten, müssen wir ein CppDepend-Projekt erstellen. Das geht so:
- Installieren Sie CppDepend in Visual Studio mit CppDepend.VisualStudioExtensionInstaller.exe.
- Öffnen Sie Ihre Projektmappe in Visual Studio.
- Erstellen Sie Ihre Projektmappe, um Assemblys zu erzeugen.
- Wählen Sie "Attach New CppDepend project to Current VS Solution" aus dem CppDepend-Menü.
- Klicken Sie auf „VS-Projekt(e) hinzufügen“.
- Wählen Sie Ihre Projektmappe.
- Klicken Sie auf „Projekt analysieren“.
- Wählen Sie "Edit Project" aus dem Menü "Project" im Menü "CppDepend".
- Wählen Sie rechts "Paths Referenced".
- Wählen Sie jeden gelisteten Pfad und klicken Sie mit der rechten Maustaste auf "Set as Path Relative (to the CppDepend Project File Location)".
- Speichern Sie Ihre Änderungen.
Hinweis: Für diese Schritte wird eine CppDepend-Developer-Lizenz benötigt. Wenn Sie nur über eine DevOps-Lizenz verfügen, können Sie dennoch ein CppDepend-Projekt aus einer VS-Projektmappe erstellen – über VisualCppDepend.exe Start Page > New CppDepend project – und dann die Liste der zu analysierenden Projekte befüllen. In dieser Situation müssen Sie die referenzierten Pfade dennoch relativ zum Speicherort der CppDepend-Projektdatei festlegen, wie oben erklärt.
Erstellen Sie Ihr Buildskript
Als Nächstes müssen wir ein Build-Skript hinzufügen, das AppVeyor mitteilt, wie Ihr Projekt gebaut werden soll. Vollständige Details zur Funktionsweise von AppVeyor-Build-Skripten finden Sie in der AppVeyor-Dokumentation aber die, die ich hier einfüge, ist ziemlich selbsterklärend und zum Zeitpunkt des Schreibens (September 2018) korrekt. Die Datei wird im Stammverzeichnis des Repositorys abgelegt und heißt appveyor.yaml.
Interessant ist, dass wir den vollständigen absoluten Pfad der CppDepend-Projektdatei auflösen müssen, um ihn an CppDepend zu übergeben. Beachten Sie, dass unsere CppDepend-Projektdatei hier den Namen trägt SomeProject.cdproj.
Einrichten von AppVeyor und unser erster Build
Als Nächstes richten wir unser GitHub-Repo für den Build in AppVeyor ein.
- Melden Sie sich bei AppVeyor mit Ihrem GitHub-Konto an oder registrieren Sie sich.
- Klicken Sie auf dem Startbildschirm auf „Neues Projekt“.
- Fügen Sie Ihr Projekt aus der Liste der Repos Ihres GitHub-Kontos hinzu.
- Klicken Sie auf „New Build“.
Build fehlschlagen lassen
CppDepend schlägt nun bei jedem Quality-Gate-Fehler fehl. AppVeyor beendet einen Build, wenn ein Befehl einen Exit-Code ungleich null zurückgibt. Mindestens ein fehlschlagendes Quality Gate bedeutet, dass CppDepend.Console.exe gibt einen Exit-Code ungleich null zurück, wie erläutert in Quality Gates und Build-Fehlschlag.
Der einfachste Weg, einen Build-Fehler zu testen, ist daher, das Quality Gate "Critical Issues" zu ändern. Entfernen Sie zuerst das Prädikat, das diese Regel auf die Berücksichtigung nur kritischer Probleme einschränkt. Reduzieren Sie dann den failif Schwellenwert, sodass es bei einem einzelnen Problem fehlschlägt. Mit dem Standardregelsatz und nahezu jeder Lösung sollte dies ausreichen, um das Quality Gate auszulösen. Ihr Quality-Gate-CQLinq-Abfrage sollte nun so aussehen:
1// <QualityGate Name="Critical Issues" Unit="issues" />23failif count > 1 issues45warnif count > 0 issues67from i in Issues89select new { i, i.Severity, i.Debt, i.AnnualInterest }
Veröffentlichen des CppDepend-Berichts
Um den CppDepend-Bericht zu veröffentlichen, benötigen wir eine Reihe von Dateien, die CppDepend in /CppDependOut während des Build-Prozesses. AppVeyor ermöglicht es uns, diese Dateien zu zippen und zum Download anzubieten. Fügen Sie Folgendes am Ende Ihrer appveyor.yaml Datei:
Laden Sie dann die ZIP-Datei vom Tab "Artifacts" eines abgeschlossenen Builds herunter und entpacken Sie sie, um den HTML-Bericht anzuzeigen.
Testen Sie CppDepend noch heute
Starten Sie Ihre 14-tägige kostenlose Testversion mit vollem Zugriff auf alle Dokumentationsfunktionen. Keine Kreditkarte erforderlich.
