A4A : GitLab CI / CD

Bonjour,

Introduction

Tandis que je m’appliquais à la documentation de « Ada for Automation » comme présenté précédemment, il m’est apparu que je tenais là un nouveau sujet d’expérimentation.

En effet, les documents intègrent des portions de code annotées. Il serait donc bienvenu qu’ils soient mis à jour automatiquement en cas de modification des sources.

Me voilà embarqué dans l’intégration continue.

Afin que cette documentation à jour soit disponible, il me faut également la déployer automatiquement.

« Ada for Automation » est hébergé chez GitLab. Il se trouve que cette solution propose justement de l’intégration et du déploiement en continu.

Documentation

Plusieurs éléments composent cette documentation regroupée dans un portail.

Les plus à jour sont les « ReadMe » des applications de démonstration ou exemples ainsi que le « ReadMe » général.

Le « book » est un peu à la traine même si je l’ai un peu actualisé avec des liens non cassés par exemple.

Il y manque des pans entiers comme la mise en œuvre de Gnoga et de l’API Hilscher cifX… Bouh ! Honte à moi ! Je m’y attèle dès que possible. Promis !

Ainsi, le pipeline génère la documentation de « Ada for Automation » chaque fois que le code source est modifié.

Pour cela, j’ai créé ma propre image Docker pour intégrer la chaine de traitement Asciidoc. Il y en a bien une officielle mais il y a dans le « book » des images issues de Libre Office qui nécessitent un traitement particulier.

Il la publie ensuite dans l’espace offert par GitLab Pages ici.

Images Docker

GitLab propose également de générer et d’héberger des images Docker.

Il en a déjà été question ici et là. A peu de chose près, c’est réalisé de la même manière que décrit précédemment.

GitLab offre des « shared runners » qui conviennent dans la plupart des cas.

Cependant, pour compiler Gnoga qui utilise Simple Components et Zanyblue, le runner offert mettait trop de temps et la construction de l’image échouait comme on peut le constater dans les logs du pipeline.

J’ai donc installé un runner dans mon petit cloud et ça se passe bien maintenant pour les amd64 et les Raspberry Pi.

J’ai encore quelques soucis pour générer les images pour le netPI RTE3 qui se basent sur l’image fournie par Hilscher mais j’espère résoudre ces soucis très bientôt.

Ces mêmes images se construisent très bien sur un Raspberry Pi ou sur un netPI.

Conclusion

Tous les outils sont en place pour fournir une documentation à jour et des images Docker actuelles.

Et, comme le procédé est ouvert, vous pouvez vous en inspirer pour vos propres projets avec « Ada for Automation » !

Cordialement,
Stéphane