Déployer son Thème Wordpress avec les Github Actions

L'automatisation du déploiement d'un thème WordPress permet de gagner en efficacité et d'éviter les erreurs manuelles. Dans cet article, nous allons voir comment configurer GitHub Actions pour déployer automatiquement et gratuitement un thème WordPress sur un hébergement mutualisé type o2switch.
Prérequis
- Un compte GitHub avec un dépôt privé ou public contenant votre thème WordPress.
- Votre thème versionné et rattaché au dépôt github
- Un accès FTP chez votre hébergeur.
Le cas o2switch
l’acces ssh étant restreint à des ip spécifiques, il sera compliqué d’utiliser cette méthode pour mettre à jour notre thème. Nous allons plutôt utiliser un simple transfert ftp par praticité.
Accès FTP dans GitHub
Les informations d'identifications FTP ne doivent pas être stockées directement dans le code yaml. Il faut utiliser les secrets ou les variables.
Rendez-vous sur votre dépôt GitHub.
Allez dans Settings > Secrets and variables > Actions.
Ajoutez les secrets suivants :
- FTP_HOST : L'adresse du serveur FTP d'o2switch.
- FTP_USERNAME : Votre nom d'utilisateur FTP.
- FTP_PASSWORD : Votre mot de passe FTP.

Workflow GitHub Actions
Créez un fichier .github/workflows/deploy_o2switch.yml dans votre répertoire de projet avec le contenu suivant :
name: Deploy to FTP
on:
push:
branches:
- main
jobs:
deploy:
name: FTP Deploy sur o2switch
runs-on: ubuntu-latest
steps:
- name: Checkout du repository
uses: actions/checkout@v4
- name: Deployer via FTP sur o2switch
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.FTP_HOST }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PASS }}
protocol: ftp # Options possibles : ftp, ftps, sftp
port: 21 # Par défaut : 21 pour FTP, 990 pour FTPS, 22 pour SFTP
security: loose # Options : loose, strict (strict = certificat SSL validé)
local-dir: ./
server-dir: /wp-content/themes/sbt/
exclude: |
**/.git*
**/.git*/**
**/.github*
**/.github*/**
.gitignore
**/node_modules*
package.json
package-lock.json
tailwind.config.js
README.md
base.css
Explication
- Déclenchement : Le déploiement s'exécute automatiquement à chaque push sur la branche main.
- Checkout du dépôt : Le repository est cloné sur l'environnement de GitHub Actions.
- Déploiement FTP : L'action "FTP Deploy sur o2switch" est utilisée pour envoyer les fichiers du thème sur le serveur distant via FTP.
Une liste de dossiers et de fichiers sont exclus du transfert.
Tester
Faites un commit et un push sur la branche main.
Rendez-vous dans l'onglet Actions de votre répôt GitHub pour suivre l'exécution du workflow.
Une fois le workflow terminé, vérifiez votre site WordPress pour voir si les modifications ont bien été appliquées. Attention à la mise en cache des pages de votre site wordpress.

Conclusion
Avec cette configuration, chaque modification pushée sur la branche main est automatiquement déployée sur mon hébergement o2switch. Cette approche permet d'assurer un déploiement rapide, fiable et sans intervention manuelle. Plus besoin d'ouvrir filezilla, de vérifier 10x si ce sont les bons fichiers, dans le bon dossier, dans la bonne version...
Pour ne pas interférer avec notre blog en production, il faudra réaliser nos modifications et développements sur une branche de dev et merger via un pull requests nos modifications sur la branche main quand nous sommes prêts.
Cette méthode peut s'appliquer à n'importe quel hébergeur du moment qu'un acces ftp est disponible.