Intégration AppVeyor
Booster l'efficacité du développement avec l'intégration CppDepend et AppVeyor
Ce superbe tutoriel approfondi est basé sur le Intégration NDepend (équivalent de CppDepend pour .NET) écrit par Jimmy Pelletier, reproduit ci-dessous avec l'aimable autorisation de l'auteur.
- Prérequis & hypothèses
- Rendre les outils disponibles pendant le build
- Créer un projet CppDepend
- Créez votre script de build
- Configuration d’AppVeyor et notre premier build
- Faire échouer le build
- Publication du rapport CppDepend
Dans cette documentation, je fournis des instructions étape par étape sur la façon d'intégrer CppDepend dans votre pipeline CI pour le contrôle qualité et l'analytique historique. Pour le contrôle qualité, je montrerai comment faire échouer votre build lorsqu'une règle CppDepend est enfreinte, et pour l'analytique historique, nous publierons le rapport CppDepend comme artefact de build.
Prérequis & hypothèses
Pour suivre les étapes décrites dans cet article, quelques prérequis sont nécessaires. Vous aurez besoin de :
- Un projet C/C++ quelconque versionné sur GitHub.
- Un Clé de licence DevOps. Pour obtenir ce fichier, contactez-nous à support@codergears.com. Si vous êtes en période d'essai, indiquez-nous le nom de votre entreprise et votre adresse postale dans l'e-mail. Sinon, si vous possédez une clé de licence DevOps, indiquez-nous votre clé de licence dans l'e-mail.
J'ai aussi supposé que vous savez travailler avec C/C++, Visual Studio et Git.
Rendre les outils disponibles pendant le build
Pour exécuter CppDepend dans votre pipeline de build, vous devrez CppDepend.Console.exe disponible pour s'exécuter pendant le build. Lorsqu'on travaille avec un agent de build cloud comme AppVeyor, les options pour installer des outils et configurer l'environnement sont limitées. Nous allons simplement enregistrer CppDepend dans le gestionnaire de sources. D'abord télécharger l’installateur CppDepend Copiez ensuite son contenu dans un répertoire tools. J'ai mis le mien dans /tools/CppDepend. Vous devrez également activer votre Clé de licence DevOps.
Créer un projet CppDepend
Pour faire quoi que ce soit avec CppDepend, nous devons créer un projet CppDepend. Voici comment procéder :
- Installez CppDepend dans Visual Studio avec CppDepend.VisualStudioExtensionInstaller.exe.
- Ouvrez votre solution dans Visual Studio.
- Construisez votre solution pour produire les assemblys.
- Sélectionnez « Attach New CppDepend project to Current VS Solution » dans le menu CppDepend.
- Cliquez sur « Ajouter des projets VS ».
- Sélectionnez votre solution.
- Cliquez sur « Analyser le projet ».
- Sélectionnez « Edit Project » dans le menu « Project » du menu « CppDepend ».
- Sélectionnez « Paths Referenced » à droite.
- Sélectionnez chaque chemin listé et faites un clic droit pour choisir « Set as Path Relative (to the CppDepend Project File Location) ».
- Enregistrez vos modifications.
Remarque : Une licence CppDepend Developer est nécessaire pour effectuer ces étapes. Si vous ne disposez que d'une licence DevOps, vous pouvez toujours créer un projet CppDepend à partir d'une solution VS depuis VisualCppDepend.exe Start Page > New CppDepend project, puis remplir la liste des projets à analyser. Dans ce cas, vous devrez toujours définir les chemins référencés comme relatifs à l'emplacement du fichier projet CppDepend, comme expliqué ci-dessus.
Créez votre script de build
Ensuite, nous devons ajouter un script de build pour indiquer à AppVeyor comment compiler votre projet. Les détails complets sur le fonctionnement des scripts de build AppVeyor se trouvent dans la Documentation AppVeyor mais celle que j'inclus ici est assez explicite et correcte au moment de la rédaction (septembre 2018). Le fichier est placé à la racine du dépôt et s'appelle appveyor.yaml.
Ce qu'il est intéressant de noter, c'est que nous devons résoudre le chemin absolu complet du fichier projet CppDepend pour le passer à CppDepend. Notez qu'ici notre fichier projet CppDepend est nommé SomeProject.cdproj.
Configuration d’AppVeyor et notre premier build
Ensuite, nous devons configurer notre dépôt GitHub pour builder dans AppVeyor.
- Connectez-vous ou inscrivez-vous à AppVeyor avec votre compte GitHub.
- Cliquez sur « Nouveau projet » depuis l’écran d’accueil.
- Ajoutez votre projet depuis la liste des dépôts disponibles sur votre compte GitHub.
- Cliquez sur « New Build ».
Faire échouer le build
CppDepend échouera désormais en cas d'échec d'un Quality Gate. AppVeyor termine un build lorsqu'une commande retourne un code de sortie non nul. Au moins un Quality Gate en échec signifie que CppDepend.Console.exe renverra un code de sortie non nul comme expliqué dans Quality gates et échec de build.
Ainsi, le moyen le plus simple de tester l'échec du build est de modifier le quality gate "Critical Issues". Supprimez d'abord le prédicat qui restreint cette règle à ne considérer que les problèmes critiques. Réduisez ensuite le failif seuil afin qu'il échoue sur un seul problème. Avec l'ensemble de règles par défaut et pratiquement n'importe quelle solution, cela devrait suffire à déclencher le quality gate. Votre Requête CQLinq de quality gate devrait maintenant ressembler à ceci :
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 }
Publication du rapport CppDepend
Pour publier le rapport CppDepend, nous avons besoin d'un ensemble de fichiers que CppDepend écrit dans /CppDependOut pendant le processus de build. AppVeyor nous permet de compresser ces fichiers en zip et de les proposer au téléchargement. Ajoutez ce qui suit à la fin de votre appveyor.yaml fichier :
Téléchargez ensuite le fichier zip depuis l'onglet « Artifacts » d'un build terminé et extrayez-le pour voir le rapport HTML.
Essayez CppDepend aujourd'hui
Commencez votre essai gratuit de 14 jours avec accès complet à toutes les fonctionnalités de documentation. Sans carte bancaire.
