WordPress-et-GitHub-Actions-automatiser-vos-déploiements

WordPress et GitHub Actions : automatiser vos déploiements

Table des matières

Déployer un site WordPress manuellement peut vite devenir un cauchemar, surtout lorsqu’on gère plusieurs environnements ou que l’équipe est composée de plusieurs développeurs. Entre les transferts FTP, les oublis de fichiers, les erreurs humaines, et les délais, le processus peut être long, frustrant, et source de bugs. C’est là qu’interviennent des outils comme GitHub Actions, qui permettent d’automatiser les tâches répétitives et de standardiser les déploiements à chaque mise à jour du code source.

Utiliser GitHub Actions avec WordPress, c’est faire un pas vers la professionnalisation de votre workflow de développement. Que vous gériez un petit blog ou un site d’entreprise complexe, cette approche vous garantit un gain de temps, une meilleure sécurité, et une réduction drastique des erreurs humaines. Dans cet article, on va plonger dans le concret : comment préparer votre projet WordPress, comment configurer un workflow GitHub, comment sécuriser vos clés SSH, et bien plus.

Pourquoi vous devriez envisager l’automatisation avec GitHub Actions ?

Pourquoi vous devriez envisager l’automatisation avec GitHub Actions _ - visual selection

Voici quelques raisons majeures qui rendent cette automatisation indispensable :

  • Moins d’erreurs humaines : finis les oublis de fichiers ou les mauvaises manipulations FTP.
  • Gain de temps : le déploiement se fait en quelques secondes, automatiquement.
  • Meilleure collaboration : tous les développeurs utilisent le même processus.
  • Sécurité renforcée : plus besoin de partager des mots de passe FTP, utilisez des clés SSH chiffrées.
  • Historique de déploiement clair : chaque déploiement est traçable via GitHub.
  • Déploiement multi-environnement : vous pouvez facilement gérer des environnements de staging et de production.
  • Standardisation du process : vos déploiements sont toujours faits de la même façon, sans surprise.

Introduction à GitHub Actions

Si vous êtes développeur et utilisez GitHub, vous avez sûrement entendu parler de GitHub Actions. C’est un outil d’automatisation intégré directement à GitHub qui vous permet d’exécuter des scripts à chaque événement déclenché dans votre dépôt. Dans le cadre de WordPress, il s’agit d’un allié puissant pour automatiser les tests, les déploiements, les mises à jour, et plus encore.

Qu’est-ce que GitHub Actions ?

GitHub Actions est un système d’intégration et de déploiement continu (CI/CD) proposé par GitHub. Il permet d’automatiser des tâches directement à partir de votre dépôt en écrivant des workflows définis dans des fichiers .yml. Ces workflows peuvent être déclenchés par différents événements comme un push, une pull request, ou même à une heure précise.

L’avantage principal ? Tout est centralisé dans GitHub. Vous n’avez pas besoin d’installer un service externe : tout se fait à partir de votre dépôt. Vous pouvez configurer des actions simples comme envoyer une notification Slack, ou des workflows complexes pour tester, valider, et déployer un site web.

Les workflows sont composés de jobs et de steps, qui sont exécutés dans des runners (machines virtuelles fournies par GitHub ou auto-hébergées). Ces runners vont exécuter les commandes spécifiées, comme par exemple rsync, ssh, ou composer install.

En quelques mots : GitHub Actions est un robot que vous programmez pour faire le sale boulot à votre place.

Fonctionnement des workflows GitHub

Un workflow GitHub Actions est un fichier de configuration écrit en YAML, stocké dans le dossier .github/workflows/ de votre dépôt. Il décrit quand le workflow doit s’exécuter (par exemple, à chaque push sur main) et quoi faire.

Voici les principaux éléments qui composent un workflow :

  • name: : le nom de votre workflow.
  • on: : les événements déclencheurs (ex. push, pull_request, schedule).
  • jobs: : les différentes tâches à exécuter.
  • steps: : les commandes exécutées à l’intérieur d’un job.
  • runs-on: : l’environnement dans lequel les jobs tournent (ubuntu-latest, windows-latest, etc.).

Cas d’usage pour WordPress

Dans un projet WordPress, GitHub Actions peut servir à :

  • Déployer automatiquement les fichiers du thème ou du plugin vers un serveur de staging ou production.
  • Exécuter des tests PHP ou JavaScript (par exemple avec PHPUnit ou Jest).
  • Optimiser le code avant déploiement (minification, compilation Sass/JS avec npm ou webpack).
  • Générer et publier une documentation.
  • Notifier l’équipe par email ou Slack à chaque changement majeur.
  • Effectuer des sauvegardes ou synchronisations de fichiers ou bases de données.

Grâce à GitHub Actions, on peut faire de WordPress un projet de développement moderne, aligné sur les bonnes pratiques du monde DevOps.

Préparer votre projet WordPress pour le versionnage

Avant de pouvoir utiliser GitHub Actions pour déployer votre site WordPress, vous devez structurer proprement votre projet pour le rendre compatible avec Git et le contrôle de version. Cela permet de garder un historique propre, de collaborer efficacement, et d’automatiser les tâches de déploiement de manière fiable. Vous allez ici nettoyer votre dossier, ignorer les fichiers inutiles et pousser votre code sur GitHub.

WordPress-GitHub-Actions-

Nettoyer et structurer les fichiers du projet

Un dépôt Git ne doit contenir que les fichiers essentiels au fonctionnement du site. Vous n’avez pas besoin de versionner les plugins tiers, les médias ou encore le cœur de WordPress si vous utilisez un environnement stable ou un gestionnaire comme Composer. Cela réduit le poids du dépôt et améliore la lisibilité.

Fichiers et dossiers à inclure :

  • /wp-content/themes/mon-theme/ – uniquement votre thème personnalisé
  • /wp-content/plugins/mon-plugin/ – si vous développez un plugin maison
  • composer.json – si vous utilisez Composer
  • package.json – si vous utilisez npm/webpack
  • .github/ – vos workflows GitHub Actions
  • readme.md, .editorconfig, .env.example

Créer un fichier .gitignore adapté à WordPress

Le fichier .gitignore est crucial pour exclure tous les fichiers qui ne doivent pas être suivis par Git. Cela inclut les données personnelles, les fichiers générés automatiquement, ou les plugins non développés en interne. Voici un exemple adapté pour WordPress :

# Core WordPress
/wp-admin/
/wp-includes/
license.txt
readme.html

# Configuration serveur
.htaccess
web.config

# Contenu à ignorer
wp-content/uploads/
wp-content/cache/
wp-content/backups/
wp-content/upgrade/
wp-content/plugins/

# Fichiers sensibles
wp-config.php
.env
*.log

Initialiser le dépôt Git et pousser sur GitHub

Une fois votre dossier structuré et le .gitignore en place, vous pouvez initialiser votre dépôt local et le connecter à GitHub. Cela permet à GitHub Actions d’accéder à vos fichiers pour exécuter les workflows automatiquement.

Commandes à exécuter :

git init
git add .
git commit -m "Initial commit for WordPress project"
git remote add origin git@github.com:votre-utilisateur/mon-projet-wordpress.git
git push -u origin main

Assurez-vous que votre dépôt est privé ou sécurisé, surtout si vous stockez des fichiers sensibles ou de la configuration serveur.

Créer un workflow GitHub Actions pour WordPress

Pour automatiser le déploiement de votre projet WordPress, il faut créer un fichier YAML qui définit ce que GitHub doit faire lorsqu’un événement se produit dans votre dépôt. Ce fichier va contenir les instructions pour télécharger le code, établir une connexion SSH, lancer un script, etc.

Comprendre la structure d’un fichier YAML

Un fichier YAML (Yet Another Markup Language) est un format lisible pour décrire les workflows dans GitHub Actions. Il suit une indentation stricte et doit être placé dans .github/workflows/.

Structure type :

  • name: – Nom du workflow.
  • on: – Événement déclencheur (push, pull_request, etc.).
  • jobs: – Liste des tâches à exécuter.
  • steps: – Actions individuelles dans chaque job.

Définir les jobs, steps et déclencheurs

Un workflow est composé de jobs (ex. build, deploy), eux-mêmes constitués de steps (ex. checkout, SSH, rsync). Chaque job peut tourner sur une VM indépendante via runs-on.

Éléments clés :

  • on: push – Déclenche le workflow à chaque push.
  • jobs: – Contient un ou plusieurs jobs indépendants.
  • steps: – Liste d’actions comme checkout, run, uses.

Exemple de workflow basique

Voici un exemple fonctionnel pour déployer un thème WordPress personnalisé via SSH et rsync :

name: Deploy WordPress Theme

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Deploy with rsync
        run: |
          rsync -avz --delete ./wp-content/themes/mon-theme/ user@host:/var/www/html/wp-content/themes/mon-theme/
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}

Déploiement via SSH avec rsync

Déployer un site WordPress en utilisant rsync via SSH est une méthode à la fois rapide, sécurisée et idéale pour les automatisations. Elle permet de transférer uniquement les fichiers modifiés, ce qui réduit considérablement le temps de déploiement et limite les risques d’erreurs. Cette approche est parfaitement adaptée à GitHub Actions et s’intègre facilement dans un workflow CI/CD.

Workflow-GitHub-Actions-pour-WordPress

Pourquoi utiliser rsync ?

rsync est populaire car il combine performance, fiabilité, et sécurité pour les transferts distants.

  • Ne transfère que les fichiers modifiés (gain de temps)
  • Utilise SSH pour des connexions sécurisées
  • Peut supprimer les fichiers obsolètes côté serveur
  • Idéal pour les projets WordPress versionnés
  • S’intègre nativement dans les scripts automatisés

Exemple de commande rsync pour WordPress

Une commande simple et directe suffit pour déployer un thème WordPress personnalisé :

  • Synchronisation du dossier thème (wp-content/themes/mon-theme/)
  • Utilisation des options : -a (archiver), -v (verbeux), -z (compression)
  • Déploiement sécurisé via clé SSH

Exclure les fichiers non nécessaires au déploiement

Pour éviter les erreurs et protéger les données sensibles, certains fichiers doivent être exclus du transfert.

  • .git/ et .gitignore
  • node_modules/
  • .env ou wp-config.php
  • Fichiers logs (*.log)
  • Backups, dossiers de cache ou fichiers temporaires

Déploiement conditionnel pour staging et production

Lorsque vous travaillez sur un site WordPress professionnel, vous devez absolument distinguer les environnements de staging (préproduction) et de production. Cela permet de tester vos modifications avant de les rendre visibles aux visiteurs. Grâce à GitHub Actions, vous pouvez configurer des déploiements conditionnels selon la branche sur laquelle vous poussez votre code, ce qui évite les erreurs en prod.

Gérer plusieurs environnements via branches Git

La manière la plus simple de séparer les environnements est d’utiliser différentes branches Git pour chaque contexte.

  • main ou master pour la production
  • develop, staging, ou preprod pour les tests
  • Permet de garder un historique clair par environnement
  • Idéal pour tester les nouveautés sans risquer d’impacter le site en ligne

Ajouter des conditions dans le fichier YAML

Dans GitHub Actions, vous pouvez facilement conditionner l’exécution d’un déploiement selon la branche active. Cela se fait dans la section on: ou dans les jobs via if:.

  • Utiliser on: push: branches: [main] pour déclencher uniquement sur la prod
  • Ajouter des conditions dans un job avec if: github.ref == 'refs/heads/staging'
  • Créer plusieurs jobs spécifiques à chaque environnement

Maintenir une cohérence entre staging et prod

Pour que vos environnements restent synchronisés, il est essentiel de respecter quelques pratiques :

  • Toujours tester les nouveautés sur staging avant la mise en production
  • Fusionner régulièrement staging vers main après validation
  • Garder une configuration identique (même structure de fichiers, même scripts)
  • Utiliser des variables d’environnement distinctes pour chaque contexte
  • Documenter les étapes de validation et de déploiement pour toute l’équipe

Bonnes pratiques de sécurité pour l’automatisation

L’automatisation des déploiements WordPress avec GitHub Actions offre de nombreux avantages, mais elle implique aussi des risques si elle est mal sécurisée. Protéger vos données sensibles, restreindre les accès et vérifier les sources de vos scripts sont des étapes essentielles pour éviter les failles et les abus. Voici quelques meilleures pratiques pour garantir un workflow sûr et fiable.

Stocker les données sensibles dans les secrets

Ne jamais stocker de mots de passe, clés privées, ou identifiants en clair dans le code. GitHub propose un système de secrets chiffrés pour cela.

  • Ajouter vos clés SSH dans Settings > Secrets and variables
  • Utiliser ${{ secrets.NOM_DU_SECRET }} dans vos fichiers YAML
  • Exemple de secrets : SSH_KEY, FTP_PASSWORD, DB_HOST
  • Les secrets ne sont jamais visibles dans les logs GitHub Actions

Utiliser des workflows vérifiés

Certaines actions proposées sur GitHub Marketplace sont développées par des tiers. Avant de les intégrer, vous devez vous assurer qu’elles sont fiables.

  • Privilégier les actions officielles (par GitHub ou mainteneurs reconnus)
  • Vérifier les repos GitHub des actions utilisées
  • Indiquer une version précise comme @v3 pour éviter les changements automatiques
  • Lire les issues/commentaires pour détecter d’éventuels problèmes de sécurité

Limiter les accès aux dépôts et actions

Plus un dépôt est accessible, plus il est exposé aux risques. Il est donc recommandé de restreindre les autorisations autant que possible.

  • Utiliser des dépôts privés
  • Ne donner l’accès qu’aux membres nécessaires
  • Activer l’option “Require approval for all outside collaborators” si besoin
  • Restreindre les permissions des tokens par défaut dans .github/settings.yml

Conclusion

L’automatisation du déploiement de WordPress avec GitHub Actions est un véritable levier de productivité pour les développeurs. Elle permet de gagner du temps, de réduire les erreurs humaines et de maintenir une cohérence entre les différents environnements. En structurant correctement votre projet, en sécurisant vos accès, et en configurant des workflows efficaces, vous transformez votre processus de déploiement en une routine fiable et professionnelle. Ce système s’adapte aussi bien aux petits projets qu’aux sites complexes. Alors, pourquoi continuer à déployer manuellement quand tout peut être automatisé ?

Trouver des articles
similaires

Le guide ultime de l’email marketing pour les débutants

L’email marketing est l’un des plus vieux types de marketing numérique, et ça marche...
24 April, 2023
Comment-Optimiser-les-Images-pour-un-Site-Web-Responsive

Comment Optimiser les Images pour un Site Web Responsive

Dans l’univers du web moderne, l’optimisation des images est bien plus qu’un simple choix...
7 May, 2025
Quelle Stratégie Choisir à La Réunion

SEO Naturel vs SEO Payant: Quelle Stratégie Choisir à La Réunion?

Le SEO (Search Engine Optimization) et le SEA (Search Engine Advertising) sont deux piliers...
2 October, 2024
Personnaliser-l’interface-d’administration-WordPress-Guide

Personnaliser l’interface d’administration WordPress : Guide

WordPress, en tant que CMS (système de gestion de contenu) largement utilisé, offre une...
13 May, 2025
Responsive-vs.-Adaptive-Design

Responsive Design vs. Adaptive Design : Quelle Approche Choisir ?

Le design web moderne se trouve à un carrefour technologique, confronté à une multitude...
6 May, 2025

Optimises ton expérience client avec le marketing omnicanal ?

Le marketing omnicanal, c'est une stratégie marketing qui consiste à utiliser plusieurs canaux pour...
24 April, 2023
WordPress vs Webflow Lequel Choisir pour Votre Site Web

WordPress vs Webflow : Lequel Choisir pour Votre Site Web en 2025 ?

Le choix d’un CMS ou d’un constructeur de site est crucial pour la réussite...
19 May, 2025
Comment Choisir une Agence Web à La Réunion_ Ce Quil Faut Considérer

Comment Choisir une Agence Web à La Réunion: Ce Qu’il Faut Considérer

Trouver la bonne agence web pour accompagner votre projet est une décision stratégique qui...
1 October, 2024
Flyer-vs-Brochure-Quelle-Différence-et-Quand-les-Utiliser-

Flyer vs Brochure : Quelle Différence et Quand les Utiliser ?

Un flyer et une brochure sont des supports imprimés couramment utilisés en communication visuelle...
20 February, 2025
Base de données WordPress Les Erreurs qui Ralentissent Votre SEO

Base de données WordPress : Les Erreurs qui Ralentissent Votre Site

Une base de données WordPress mal entretenue peut rendre votre site lent, ce qui...
23 May, 2025
Mots-Clés Longue Traîne sont Essentiels pour le SEO à La Réunion

Pourquoi les Mots-Clés Longue Traîne sont Essentiels pour le SEO à La Réunion

Les mots-clés longue traîne jouent un rôle crucial dans le SEO à La Réunion,...
24 October, 2024
Les Facteurs de SEO Essentiels Pour Entreprises de La Réunion

Les Facteurs de SEO Essentiels Pour Entreprises de La Réunion

Le SEO, ou référencement naturel, est un levier fondamental pour les entreprises locales cherchant...
23 October, 2024
Défis du marketing digital à La Réunion en 2025 1

Défis du marketing digital à La Réunion en 2025

Dans un monde de plus en plus connecté, le marketing digital est devenu un...
10 December, 2024

Comment développer ta base de données d’email marketing

Le marketing par email peut remplir plusieurs rôles : fournir de la valeur, construire...
24 April, 2023
Comment créer un portfolio de conception graphique gratuitement

Comment créer un portfolio de conception graphique gratuitement en 2024 ?

Bienvenue dans le guide complet sur la création d’un portfolio de conception graphique exceptionnel...
31 January, 2024
Site e-commerce à la Réunion

Site e-commerce à la Réunion: Relever les défis et saisir les Opportunités

Le Site e-commerce à La Réunion a évolué au-delà d’une simple tendance pour devenir...
17 January, 2024

Comment faire une landing page efficace

En tant qu'entreprise, ta page de destination a pour but de convaincre les prospects...
24 April, 2023
Pourquoi avoir un site internet à la Réunion 2024

Pourquoi avoir un site internet à la Réunion 2024?

Dans le contexte de l’évolution numérique à la Réunion, il devient impératif pour les...
2 January, 2024
Sécuriser Votre Site Web à La Réunion_ Les Étapes Indispensables

Sécuriser Votre Site Web à La Réunion: Les Étapes Indispensables

Sécuriser votre site web à La Réunion n’est pas seulement une question de prévention...
27 October, 2024
Comment lIA change le SEO et les outils pour y parvenir

Comment l’IA change le SEO et les outils pour y parvenir

À l’ère numérique actuelle, l’intelligence artificielle (IA) révolutionne le domaine de l’optimisation pour les...
7 February, 2025

Nous sommes là pour vous aider

Lorem ipsum dolor sit amet consectetur adipiscing elit blandit parturient, risus primis nisi fames sagittis condimentum urna senectus. Mollis posuere class quis netus gravida magna tempus inceptos fames, sociosqu suspendisse commodo ridiculus curae tristique nisi aptent, purus cursus etiam quisque enim nulla consequat faucibus.

Ne restez plus seul