Salut à tous !
Je vous écris un petit article pour vous parler d’un autre de mes projets, qui n’est pas un projet perso cette fois, mais un projet pro ![]()
Il s’agit de BuildBox !

C’est un outil Linux de CI/CD sous licence libre (GPLv2), sur lequel je travaille pour mon entreprise Trusted Objects, en tant que side project depuis 2020.
Après quelques années dans l’équipe R&D, j’ai identifié plusieurs améliorations possibles dans notre processus de développement logiciel et de livraison.
Je me suis donc mis en quête d’un outil permettant de les adresser, mais je n’ai rien trouvé, du moins aucune solution capable d’adresser tous les points que j’avais identifiés.
C’est pourquoi je me suis mis à développer BuildBox :
- Chaque projet R&D a son container. Tout y est versionné. Il n’y a pas de dépendance entre le projet et votre distribution Linux, si ce n’est d’avoir une BuildBox fonctionnelle.
- Tous les ingénieurs au sein d’un projet utilisent le même environnement pour le compiler, que ce soit à des fins de développement ou de livraison. Peu importe la distribution Linux, il n’y a pas de problème de dépendance manquante ou de librairie ayant une version incompatible.
- Quel que soit le projet, c’est toujours la même procédure pour générer un livrable, et ça s’intègre bien dans un pipeline Jenkins.
- Les livrables sont reproductibles dans le temps (et l’espace) : si vous voulez compiler un projet deux ans plus tard alors que vous êtes passé d’Ubuntu à ArchLinux et que vous avez tout oublié concernant le fonctionnement du projet en question, il vous suffit de récupérer le projet BuildBox associé et c’est parti.
C’était au départ, et pendant quelques années, un outil très spécifique pour nos besoins internes, mais le temps pasant l’outil est arrivé à une certaine maturité lui permettant de couvrir d’autres besoins que spécifiquement les nôtres.
En partant de ce constat, nous avons décidé de publier la branche 2.x de BuildBox sur GitHub sous licence GPLv2 ![]()
Voici un exemple: un simple projet permettant de compiler une AppImage x86-64 de VLC media player.
En interne, nous nous en servons par exemple pour :
- Cross-compiler des firmwares avec des toolchains spécifiques, les outils qui vont avec, et la documentation auto-générée.
- Packager des applications Electron qui nécessitent un accès au matériel.
- Construire des distributions Linux embarquées.
- Cross-compiler des images de containers Docker.
SI vous reconnaissez dans les solutions proposées par BuildBox certaines problématiques que vous rencontrez, n’hésitez pas à aller y jeter un coup d’oeil, ou bien à me poser des questions !
À bientôt !