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

Canva vs Looka vs Wix Logo Maker

Canva vs Looka vs Wix Logo Maker : Quel Générateur de Logo IA est le Meilleur

Les générateurs de logos en ligne comme Canva, Looka et Wix Logo Maker ont...
24 February, 2025
Créer Votre Site Web Commercial 1

Lancement Réussi: Guide Étape par Étape pour Créer Votre Site Web Commercial

Nous entrons dans une ère où la présence en ligne d’une entreprise est aussi...
11 January, 2024
Meilleurs-outils-dIA-pour-la-conception-graphique-

Meilleurs outils d’IA pour la conception graphique en 2024

L’introduction de l’intelligence artificielle (IA) dans la conception graphique à La Réunion marque une...
31 January, 2024
Comment augmenter le temps passé sur vos landing pages

Comment augmenter le temps passé sur vos landing pages

Le temps passé sur une landing page est un indicateur clé de l’engagement des...
27 May, 2025
Les erreurs fréquentes en marketing numérique et comment les éviter

Les erreurs fréquentes en marketing numérique et comment les éviter

Dans un monde où le marketing numérique est indispensable pour la croissance des entreprises,...
28 November, 2024
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

Augmentes ton trafic et tes ventes avec Blogging e-commerce

Le marketing de contenu, c'est le moyen le plus rentable d'attirer du trafic vers...
24 April, 2023
Sécurité des sites web 10 pratiques essentielles à adopter

Sécurité des sites web : 10 pratiques essentielles à adopter

La cybersécurité est essentielle pour protéger les sites web, car les cyberattaques sont de...
17 March, 2025
Logo-IA-5-Erreurs-Fréquentes-à-Éviter-_et-Comment-Les-Corriger_

Logo IA : 5+ Erreurs Fréquentes à Éviter (et Comment Les Corriger)

L’essor fulgurant de l’intelligence artificielle (IA) a profondément transformé le domaine du design graphique,...
19 February, 2025

Comment acquérir de nouveaux clients grâce à l’inbound Marketing ?

Il y a beaucoup de spécialistes du marketing dans le monde qui se tournent...
24 April, 2023

7 astuces pour mieux connaître vos clients

Les clients sont ce qui fait ou défait votre marque. L’objectif ultime d’un bon...
24 April, 2023

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 faire une landing page efficace

En tant qu'entreprise, ta page de destination a pour but de convaincre les prospects...
24 April, 2023

Les contenus tendances et des conseils pour les utiliser efficacement

Comme tu le sais certainement, le contenu c'est l'essence d'Internet. Il existe plusieurs types...
24 April, 2023
Secrets dun logo réussi

Secrets d’un logo réussi à La Réunion dévoilés

Lorsqu’on évoque le monde des affaires, l’importance d’un logo distinctif ne peut être sous-estimée....
12 February, 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
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
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
Booster vos fiches produit avec des extraits enrichis SEO

Booster vos fiches produit avec des extraits enrichis SEO

Les extraits enrichis sont des informations supplémentaires qui apparaissent dans les résultats de recherche...
3 June, 2025
Impact Majeur de lUX Design dans le Développement Web La Réunion

Impact Majeur de l’UX Design dans le Développement Web La Réunion

Dans le monde du développement web à La Réunion, l’UX Design, ou design de...
26 January, 2024

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

Bienvenu chez Skydo Digital, l’agence qui met enfin le digital au service de votre business ! Vous avez des questions ou suggestions ? Je me ferai un plaisir de vous aider.

CONTACT

Bientôt
disponible

Bonjour à tous ! skydodigitalstudio.re est actuellement en cours de construction.