J'aime bien utiliser toutes les features des produits que j'utilise sans pour autant m’ennuyer à devoir configurer trop de choses. Malheureusement, out-of-the-box, Auto-Devops de Gitlab ne semble pas pouvoir obtenir les rapports de test et de coverage automatiquement.
Pour remplacer une partie de Auto-Devops, la documentation de Gitlab conseille de copier le template de base de Auto-Devops dans son projet et de le modifier directement. Ce n'est pas parfait parce qu'on ne bénéficiera pas des mises à jour automatique du workflow de base, mais on s'en contentera.
Le but est donc de surcharger l'étape test. Pour cela, il faut commenter cette ligne :
Et la remplacer par exemple par :
Dans mon cas, j'utilise l'image Docker créée lors de l’étape build pour y faire passer mes tests, ce qui peut donner à peu près ça :
La ligne coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/' récupère le pourcentage de code coverage (à modifier selon le framework de test). C'est affiché dans le résumé des pipelines d'une merge request.
La partie artifacts récupère les rapports pour les intégrer à Gitlab et permet d'avoir un onglet test dans les pipelines avec la liste de tous les tests et une visualisation du code coverage lors des code reviews d'une merge request !