URL: https://linuxfr.org/users/freem/journaux/laminar-un-outil-d-integration-continue-qui-semble-leger Title: Laminar: un outil d'intégration continue qui semble léger Authors: freem Date: 2019年12月21日T16:23:29+01:00 License: CC By-SA Tags: ci, intégration_continue et gpl Score: 13 Ça fait quelques temps (en années, probablement) que la notion d'intégration continue m'intéresse, de loin, mais j'ai toujours eu l'impression que les outils existants sont super spécialisés, difficiles à installer réellement (souvent distribué avec l'OS quasi-complet, que ce soit via un conteneur ou une VM, ou pire: installé par `wget foobar | sudo sh`), pas vraiment très séduisant selon moi. Bref, après la lecture du [journal sur citop](https://linuxfr.org/users/nbe/journaux/sortie-de-citop-0-1-0-suivi-des-pipelines-de-ci-en-ligne-de-commande) j'ai refait des recherches, et suis tombé sur [laminar](https://laminar.ohwg.net), outil écrit en C++ sous licence GPL (via l'excellent alternativeto, bien pratique ce site). J'ai lu rapidement quelques fichiers source aléatoires, comme j'aime le faire quand je compte adopter un outil, ainsi qu'une bonne partie de la doc, même si je n'ai pas encore tenté l'install (n'étant pas chez moi, et de toute façon je vais avoir pas mal de choses à faire dans les jours à venir) et de ce que j'ai compris: * peu de dépendances: boost (pour un seul template header-only), rapidjson, sqlite, et canproto; * la seule interface graphique exposée est une page non-intéractive (dans le sens ou elle ne peut interagir avec le système, juste donner des infos à l'utilisateur) non sécurisé; * l'écriture des tâches se fait en shell, pas besoin d'apprendre python, ruby, lisp, ou autre langage, pas non plus de DSL; * le code me semble plutôt clean: moins d'une 10aine de fichiers cpp, un CMakeLists de moins de 150 lignes, et un code qui semble beau en lecture diagonale (sur les 3-4 fichiers que j'ai lus, hein); Ce que la page d'accueil annonce, c'est qu'il s'agit d'un outil léger, rapide, fait pour être hébergé soi-même, qui ne fait qu'une seule chose. Mon impression, c'est que les promesses sont tenues, il me semble même simple d'implémenter une interface moins «lourde» qu'une interface web (encore que, n'ayant pas vue la page de résultats, je ne sais pas ce qu'elle vaut...) puisqu'il est possible de simplement utiliser les scripts `foo.after` pour émettre des données vers un fichier ou un outil de monitoring, par exemple. Si quelqu'un connaît, je serais curieux d'avoir un avis d'expérience réelle, parce que ça me motive pas mal, malgré l'inconvénient que, du coup, il faut être accessible du web si on veut l'intégrer à github, gitlab, bitbucket, sourceforge ou autre, mais bon, perso, ça ne me dérange pas trop (les raisons de ça n'ont pas leur place ici).