Principe:
Créer un dépôt git bare sur le serveur de production avec un hook post commit qui publie ce qu’il reçoit dans le répertoire de prod.
Sur le serveur cible :
Créer le repo git bare:
mkdir mon_plugin.git
cd mon_plugin.git
git init --bareAjouter un hook post receive :
vi hooks/post-receiveContenu du fichier :
#!/bin/bash
git --work-tree=/var/www/mon_site/mon_plugin --git-dir=/var/repo/mon_plugin.git checkout -fPasser le fichier en exécutable :
chmod +x hooks/post-receiveEn local
Ajouter le dépot distant “prod” :
git remote add prod ssh://user@monserveur.fr/home/user/mon_plugin.gitPour publier sur la production :
git push prod masterLe hook va alors copier le code du dépôt qu’il vient de recevoir dans le répertoire /var/www/mon_site/mon_plugin.
Voir aussi : https://blog.alwaysdata.com/fr/2018/02/05/deployer-sans-peine-avec-git-hooks/
qui détaille la procédure avec notamment un script post commit un peu plus évolué (vérification de la branche poussée par exemple)