J'utilise git post-receive hook pour déployer des versions de l'application Web à partir de trois branches (maître, staging et stable) sur trois serveurs (développement, test et production). L'appariement entre les branches et les serveurs est actuellement codé en dur dans le script. Cependant je voudrais supprimer cette restriction et rendre ce crochet possible pour gérer un nombre illimité de branches. Il peut se faire de la manière suivante:Git post-recevoir un crochet pour mettre à jour plusieurs serveurs
- déplacer toutes les options de configuration par branche à certains fichiers séparés, par exemple
.git/???/<branch_name>
- le script principal vérifie si un tel fichier est disponible pour toutes les branches, la source et puis déployer sur le serveur distant en utilisant les paramètres de configuration de ce fichier.
Cependant, je ne sais pas où exactement dans le répertoire .git
puis-je placer de tels fichiers. Ou peut-être y a-t-il une meilleure solution?
Je souhaite avoir au moins le nom d'utilisateur, le nom d'hôte et le répertoire cible afin que seules les branches de nommage ne fonctionnent pas. Je ne veux pas non plus placer une telle config dans l'arborescence du code source car elle n'a rien à voir avec les sources et je ne veux pas déranger les développeurs avec des connaissances inutiles. Il semble que j'utiliserai '.git/config' puisque c'est la solution la plus propre pour le moment. – jollyroger
Pour l'enregistrement, je ne suis pas du tout d'accord avec le fait que .git/config est le plus propre. C'est non-tracé. – Cascabel
Mais c'est vraiment ce que je cherche. Ce fichier ne doit pas être suivi et disponible pour un développeur car le déploiement n'est pas une tâche de développeur (en tant que rôle). La responsabilité du suivi du fichier repose sur l'administrateur et ses outils uniquement. J'ai [implémenté] (https://github.com/jollyroger/vcs-hooks/tree/master/git/server-sync/) cette solution, peut-être que cela peut être utile pour quelqu'un d'autre que moi. – jollyroger