Déployer un thème WordPress avec GIT

Pour déployer un thème WordPress et non pas un site WordPress entier, il vous faut :

  • Un serveur
  • Apache2 et GIT sur ce serveur
  • Un WordPress dans un sous-dossier à la racine web de votre serveur.

vous correspond à votre nom d’utilisateur 
205.106.208.20 est une suite de célèbres modèles de voiture à remplacer par l’adresse IP de votre serveur. 
votresite c’est le dossier ou se trouve votre WordPress
votretheme c’est votre thème perso

Vous aurez besoin de connaître :

  • Les bases de la ligne de commande
  • GIT

Initialisez le dépôt GIT sur le serveur distant

Connectez-vous en ssh :

ssh vous@205.106.208.20

Créez un dossier (.git est simplement là pour le différencier d’un dossier classique) :

mkdir /home/vous/repos/votretheme.git

Placez-vous dedans :

cd /home/vous/repos/votretheme.git

Initialisez GIT :

git init --bare

Créez et donnez les droits au hook post-receive :

touch hooks/post-receive
chmod 0775 hooks/post-receive

Ce sera post-receive qui se chargera de la mise à jour du thème à chaque push.

Il vous faut l’éditer comme ceci :

nano hooks/post-receive

Et y placer le contenu suivant :

git --work-tree=/var/www/html/votresite/wp-content/themes/votretheme --git-dir=/home/vous/repos/votretheme.git checkout -f

Créez le dossier du thème dans WordPress et donnez-lui les permissions

sudo mkdir /var/www/html/votresite/wp-content/themes/votretheme
sudo chown -R www-data /var/www/html/votresite/wp-content/themes/votretheme
sudo chgrp vous /var/www/html/votresite/wp-content/themes/votretheme
sudo chmod 775 /var/www/html/votresite/wp-content/themes/votretheme    

Ajoutez le dépôt distant en local

Vous devez initialiser git dans le thème WordPress que vous êtes en train de développer en local si ce n’est déjà fait.

Pour ajouter le dépôt distant faites :

git remote add preprod ssh://vous@205.106.208.20/home/vous/repos/votretheme.git

Déployez !

En local, faites :

git add . 
git commit -m "Dernières modifications avant preprod" 

git push preprod master

Maintenant dès que vous souhaiterez déployer un site en dev sur un serveur distant il vous suffira de faire un petit coup de :

git push preprod master 

Et tout se fera automatiquement. 

Elle est pas belle la vie ?