Introduction
Dans l'univers du développement logiciel, l'intégration continue (CI) est devenue un pilier incontournable. Cependant, nombre de solutions CI actuelles peuvent s'avérer complexes, lentes et difficiles à héberger soi-même. Que faire si tu n'as besoin que d'une solution simple pour exécuter des tests, compiler un projet ou déplacer quelques fichiers ? La réponse pourrait bien se trouver dans l'utilisation minimaliste des hooks Git.
Qu'est-ce qu'un Hook Git ?
Les hooks Git sont des scripts que Git exécute automatiquement à différentes étapes de son cycle de vie. Par exemple, un script peut se déclencher après qu'une commande git push ait été exécutée. Dans notre cas, nous utilisons le hook post-receive, qui s'exécute sur le serveur après que le code a été poussé. Cela te permet d'automatiser certaines actions comme l'exécution de tests ou la compilation de ton projet.
Mettre en Place un CI Minimaliste
Création du Dépôt
Pour commencer, configure un dépôt Git nu sur ton serveur personnel : ``bash ssh serveur git init --bare mon-projet.git `` Cela crée un nouveau dépôt sans espace de travail, idéal pour héberger ton code.
Configuration du Hook Post-Receive
Ajoute un script dans le répertoire hooks de ton dépôt nu : ```bash echo '#!/bin/sh
nq "./scripts/build-and-test.sh"' > hooks/post-receive chmod +x hooks/post-receive `` Ce script utilise nq, une file d'attente de tâches minimale, pour exécuter ton script de build et de test en arrière-plan, évitant ainsi que le git push` ne soit trop lent.
Avantages et Limites
Avantages
- Simplicité : Pas besoin de fichiers YAML complexes ou de configurations alambiquées.
- Rapidité : Les tests et builds sont exécutés en arrière-plan, augmentant la vitesse de l'intégration.
- Personnalisation : Tu peux facilement adapter les scripts selon tes besoins spécifiques.
Limites
- Fonctionnalités Avancées : Cette approche ne convient pas si tu as besoin de fonctionnalités avancées comme la gestion des secrets ou l'isolation complète des builds.
Étendre la Configuration
Pour ceux qui souhaitent aller plus loin, envisage d'incorporer les outils suivants :
- Podman : Pour isoler les builds de l'environnement.
- Sops : Pour gérer les secrets de manière sécurisée.
- Landdown : Pour sandboxer les builds.
Conclusion
Avec un CI minimaliste basé sur les hooks Git, tu peux simplifier considérablement ton flux de travail. C'est une solution idéale pour les développeurs cherchant à éviter la complexité des systèmes CI modernes tout en bénéficiant d'une automatisation efficace.
Discutons de ton projet en 15 minutes.