Comment utiliser les hooks de GIT pour mettre à jour automatiquement un site de développement

Le 19 janvier 2011 , par Benjamin Sonntag,

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 pull

rendez-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

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.

PricewaterhouseCoopers (« PwC ») développe en France des missions d’audit, d’expertise comptable et de conseil pour des entreprises de toutes tailles, publiques et privées. Octopuce est en charge de l’administration système des serveurs Linux de PWC France.