Comment utiliser les hooks de GIT pour mettre à jour automatiquement un site de développement
Après avoir vu comment utiliser Gitosis sur un serveur pour y centraliser ses dépôts de source pour vos projets, nous allons voir comment mettre à jour automatiquement votre serveur de développement via les hooks de Git.
En effet, il nous est souvent demandé de pouvoir mettre à jour automatiquement les sources de la version de développement à chaque push d’un développeur. Pour cela, nous allons utiliser 2 outils très utiles : sudo (qui permet à Git de se faire passer pour votre compte web) et les hooks de Git (qui permettent de déclencher une action à chaque push.)
Pour cela, on procède ainsi :
Créer un script /usr/local/bin/pullhere comme suit :
#!/bin/sh
cd "$1"
git pullrendez-le exécutable via
chmod a+x /usr/local/bin/pullhere
modifier sudo pour permettre à l’utilisateur de gitosis d’utiliser cette commande en tant que www-data.
Pour cela, en lançant "visudo" ajoutez la ligne :
git ALL = (www-data) NOPASSWD: /usr/local/bin/pullhere
ensuite, dans chaque dépot où cela est nécessaire, ajoutez le hook suivant dans un fichier post-receive :
sudo -u www-data /usr/local/bin/pullhere /html/u/user/here
par exemple : dans /home/git/repositories/projet1.git/hooks/post-receive
attention : ce dossier (hooks) contient un exemple nommé "post-receive.sample" ce n’est pas ici qu’il faut créer votre ligne sudo, mais bien dans post-receive tout court (créez-le si besoin)
Enfin, rendez ce fichier exécutable comme suit :
chmod a+x /home/git/repositories/projet1.git/hooks/post-receive
ainsi, à chaque fois qu’un utilisateur effectuera un push sur ce dépôt git dans gitosis, un pull sera automatiquement effectué dans le dossier web de votre site de développement.
Dernière étape, il faut effectuer le clonage de votre git à l’endroit du site de développement (ici /html/u/user/here) pour cela, on procède ainsi :
cd /html/u/user/here
git clone /home/git/repositories/projet1.git
Sur l'OctoBlog
- Optimisation SQL, EXPLAIN et les fonctions dans WHERE (le 27 mars 2013 , par Benjamin Sonntag,
- Javascript : le futur du web ? (le 6 décembre 2012 , par Alban Crommer,
- Octopuce à Metz (Libre et Entreprises) (le 23 octobre 2011 , par Chantal Bernard-Putz,
Logiciels Libres ?
Acteurs du Libre les membres de l’équipe Octopuce participent à divers projets, soit au nom de l’entreprise soit en leur nom propre, sur le temps offert à l’équipe pour conduire des projets personnels.
Nous avons contribué, dès ses débuts, à la conception et mise en oeuvre de la plateforme AlternC, panneau de contrôle web sur une bases 100% libre. Cette plateforme nous la proposons pour votre hébergement mutualisé ou dédié. De la même manière est né Dmanager, logiciel de partage de fichiers via internet.
C’est ainsi que pour vos projets Octopuce privilégie le choix de solutions et logiciels libres quand ceux-ci répondent à vos besoins. L’ensemble des développements réalisés pour vous sous licence libre sont mis à la disposition de tous.
Une référence ?
Yakaz est un site international de fédération de petites annonces. Très pratique pour trouver l’annonce que vous cherchez par objet ou par lieu, ce site profite de notre expertise dans les domaines de la haute diisponibilité et haute performance sur leur cluster de 60 serveurs.

