Shell : Le déploiement simple par Git

Le 9 novembre 2012 — par

Le bon vieux temps où les mises à jour de sites Web se faisait par FTP est bien révolu. Voyons comment vous pouvez simplement créer un dépôt Git distant et l’utiliser pour déployer directement vos fichiers. Ça suppose bien sûr que vous avez accès à votre machine en SSH.

Admettons que le répertoire sur le serveur de production est /mnt/www/exemple.com. On crée un dépôt Git dans ce répertoire :

mkdir /mnt/www/exemple.com && cd /mnt/www/exemple.com
git init

On modifie la configuration du dépôt pour tout d’abord spécifier que le répertoire de travail est au même endroit que le dépôt (ce que Git refuse en général de faire puisque le schéma classique est de travailler avec un troisième dépôt « bare ») :

git config core.worktree /mnt/www/exemple.com
git config receive.denycurrentbranch ignore

Enfin on crée un hook post-receive en éditant le fichier bien nommé .git/hooks/post-receive pour que git mette à jour la branche master et que votre serveur Web serve bien les fichiers de cette branche :

#!/bin/sh
git checkout -f

N’oubliez pas de rendre le fichier exécutable : chmod +x .git/hooks/post-receive

Vous pouvez ajouter ce que vous voulez à la suite de ce fichier, tout ce qui pourrait vous être utile de lancer après un déploiement (mise à jour de paquets, redémarrage de serveur de cache…).

Maintenant créons le dépôt Git local, celui depuis lequel vous allez déployer vos fichiers, et ajoutons le dépôt distant comme origin :

cd ~/Sites/exemple.com
git init
git remote add origin ssh://user@exemple.com/mnt/www/exemple.com

Pour le premier push vous devrez spécifier que nous envoyons la branche master vers le serveur origin :

git push origin master

Ensuite vous n’aurez plus qu’à utiliser votre répertoire comme tout dépôt Git, et utiliser git push pour déployer sur votre serveur distant.

Merci à Kerrick Long.

S'abonner au flux RSS du blog
Recevoir les nouveaux articles par e-mail :