Aide-mémoire GitHub Actions pour Déploiement WordPress

Aide-mémoire GitHub Actions pour Déploiement WordPress

Dernière mise à jour : 18 décembre 2025
Sources : Documentation officielle GitHub, Référentiels de production réels

1. VERSIONS VÉRIFIÉES DES ACTIONS GITHUB (Décembre 2025)

actions/checkout

  • Dernière version : actions/checkout@v6 (Publié le 20 novembre 2024)
  • Version stable actuelle : v6.0.1 (2 décembre 2024)
  • Versions précédentes : v4.1.1, v3 (obsolète, utilise node16)
  • Statut : v6 est prêt pour la production et activement adopté en 2025
  • Fonctionnalités clés v6 :

  • Stocke les identifiants dans $RUNNERTEMP au lieu de .git/config pour une sécurité améliorée
  • Nécessite Actions Runner minimum v2.327.1
  • Support worktree pour persist-credentials
  • Rétrocompatible avec v4 et v3
  • Chemin de migration :

  • v3 → v4 : Passage à Node.js 20, ajout du flag –progress
  • v4 → v6 : Sécurité des identifiants améliorée, pas de changements cassants
  • Recommandé : Épingler avec le SHA de commit pour la stabilité
  • Syntaxe :

    - uses: actions/checkout@v6
      with:
        fetch-depth: 0  # 0 = historique complet, 1 = clone superficiel (par défaut)
        persist-credentials: true  # Stocker les identifiants pour les opérations git
    

    2. ACTIONS DE DÉPLOIEMENT SSH – OPTIONS VÉRIFIÉES

    Option A : appleboy/ssh-action (RECOMMANDÉ)

  • Dernière version : v1.1.0 (6 octobre 2024)
  • Utilisation : appleboy/ssh-action@v1
  • Statut : Activement maintenu, mis à jour tout au long de 2025
  • Langage : Construit avec Golang + drone-ssh
  • Meilleur pour : Exécution de commandes SSH distantes
  • Fonctionnalités :

  • Authentification par mot de passe et clé SSH
  • Support du déploiement multi-hôtes
  • Exécution de scripts sur serveurs distants
  • Communauté et documentation actives
  • Syntaxe :

    - name: Déployer via SSH
      uses: appleboy/ssh-action@v1
      with:
        host: ${{ secrets.SSHHOST }}
        username: ${{ secrets.SSHUSERNAME }}
        key: ${{ secrets.SSHPRIVATEKEY }}
        port: ${{ secrets.SSHPORT }}
        script: |
          cd /var/www/html/wordpress
          git pull origin main
          composer install --no-dev
          wp cache flush
    

    Alternative avec mot de passe :

    - name: Déployer via SSH (Authentification par mot de passe)
      uses: appleboy/ssh-action@v1
      with:
        host: ${{ secrets.SSHHOST }}
        username: ${{ secrets.SSHUSERNAME }}
        password: ${{ secrets.SSHPASSWORD }}
        port: 22
        script: |
          cd ~/publichtml
          git pull
    

    Option B : easingthemes/ssh-deploy

  • Objectif : Déploiement basé sur rsync via SSH
  • Arguments : -rlgoDzvc -i --delete
  • Meilleur pour : Déploiements de synchronisation de fichiers
  • Fonctionnalités : Scripts pré/post déploiement, basé sur NodeJS
  • Syntaxe :

    - name: Déployer via rsync
      uses: easingthemes/ssh-deploy@main
      with:
        SSHPRIVATEKEY: ${{ secrets.SSHPRIVATEKEY }}
        REMOTEHOST: ${{ secrets.SSHHOST }}
        REMOTEUSER: ${{ secrets.SSHUSERNAME }}
        TARGET: /var/www/html/
    

    Option C : Burnett01/rsync-deployments

  • Avertissement version : v1.0 est EOL – utiliser la dernière version
  • Arguments : -avzr --delete
  • Fonctionnalités : Clés protégées par phrase de passe, support RSA legacy
  • Meilleur pour : Déploiements rsync avancés
  • Syntaxe :

    - name: Déployer via rsync
      uses: Burnett01/rsync-deployments@latest
      with:
        switches: -avzr --delete
        path: /
        remotepath: /var/www/html
        remotehost: ${{ secrets.SSHHOST }}
        remoteuser: ${{ secrets.SSHUSERNAME }}
        remotekey: ${{ secrets.SSHPRIVATEKEY }}
    

    3. ACTIONS GITHUB SPÉCIFIQUES À WORDPRESS

    10up/action-wordpress-plugin-deploy

  • Objectif : Déployer des plugins vers le référentiel WordPress.org
  • Référentiel : github.com/10up/action-wordpress-plugin-deploy
  • Fonctionnalités : Versioning automatique, support .distignore
  • Syntaxe :

    - name: Déploiement de plugin WordPress.org
      uses: 10up/action-wordpress-plugin-deploy@stable
      env:
        SVNUSERNAME: ${{ secrets.SVNUSERNAME }}
        SVNPASSWORD: ${{ secrets.SVNPASSWORD }}
    

    10up/actions-wordpress

  • Référentiel : github.com/10up/actions-wordpress
  • Objectif : Collection d’actions de développement WordPress
  • Inclut : PHPCS, PHPUnit, analyse de sécurité
  • rtCamp/action-deploy-wordpress

  • Objectif : Déployer en utilisant PHP Deployer.org
  • Fonctionnalités : Déploiements sans interruption, support de rollback
  • Référentiel : github.com/rtCamp/action-deploy-wordpress
  • Action WP Engine

  • Version : wpengine/github-action-wpe-site-deploy@v3
  • Objectif : Déployer vers l’hébergement WP Engine
  • Mis à jour : 28 juillet 2025
  • Syntaxe :

    - name: Déployer vers WP Engine
      uses: wpengine/github-action-wpe-site-deploy@v3
      with:
        WPESSHGKEYPRIVATE: ${{ secrets.WPESSHGKEYPRIVATE }}
        WPEENV: production
    

    4. WORKFLOWS COMPLETS DE DÉPLOIEMENT WORDPRESS (2025)

    Workflow A : Déploiement de site WordPress basique via SSH

    name: Deploy WordPress Site
    
    on:
      push:
        branches:
          - main
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy to production
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.SSHHOST }}
              username: ${{ secrets.SSHUSERNAME }}
              key: ${{ secrets.SSHPRIVATEKEY }}
              port: ${{ secrets.SSHPORT }}
              script: |
                cd /var/www/html/wordpress
                git pull origin main
                composer install --no-dev --optimize-autoloader
                wp cache flush
                wp rewrite flush
    

    Workflow B : Déploiement de thème/plugin WordPress avec tests

    name: Deploy WordPress Theme
    
    on:
      push:
        branches:
          - main
      pullrequest:
        branches:
          - main
    
    jobs:
      test:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Setup PHP
            uses: shivammathur/setup-php@v2
            with:
              php-version: '8.2'
              extensions: mbstring, xml, mysql
    
          - name: Install Composer dependencies
            run: composer install --prefer-dist --no-progress
    
          - name: Run PHPCS
            run: composer run-script phpcs
    
          - name: Run PHPUnit tests
            run: composer run-script phpunit
    
      deploy:
        needs: test
        if: github.ref == 'refs/heads/main'
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy via SSH
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.SSHHOST }}
              username: ${{ secrets.SSHUSERNAME }}
              key: ${{ secrets.SSHPRIVATEKEY }}
              port: 22
              script: |
                cd /var/www/html/wp-content/themes/mytheme
                git pull origin main
                composer install --no-dev
                npm ci --production
                npm run build
    

    Workflow C : Déploiement multi-environnements (Staging + Production)

    name: Deploy to Staging and Production
    
    on:
      push:
        branches:
          - develop
          - main
    
    jobs:
      deploy-staging:
        if: github.ref == 'refs/heads/develop'
        runs-on: ubuntu-latest
        environment: staging
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy to staging
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.STAGINGSSHHOST }}
              username: ${{ secrets.STAGINGSSHUSERNAME }}
              key: ${{ secrets.STAGINGSSHPRIVATEKEY }}
              port: 22
              script: |
                cd /var/www/staging
                git pull origin develop
                composer install --no-dev
                wp cache flush
    
      deploy-production:
        if: github.ref == 'refs/heads/main'
        runs-on: ubuntu-latest
        environment: production
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy to production
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.PRODSSHHOST }}
              username: ${{ secrets.PRODSSHUSERNAME }}
              key: ${{ secrets.PRODSSHPRIVATEKEY }}
              port: 22
              script: |
                cd /var/www/production
                git pull origin main
                composer install --no-dev --optimize-autoloader
                wp cache flush
                wp rewrite flush
    

    Workflow D : Publication de plugin WordPress.org

    name: Deploy to WordPress.org
    
    on:
      push:
        tags:
          - ''
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: WordPress Plugin Deploy
            uses: 10up/action-wordpress-plugin-deploy@stable
            env:
              SVNUSERNAME: ${{ secrets.SVNUSERNAME }}
              SVNPASSWORD: ${{ secrets.SVNPASSWORD }}
              SLUG: my-plugin-slug
    

    Workflow E : Exemple de déploiement Kinsta

    name: Deploy to Kinsta
    
    on:
      push:
        branches:
          - main
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy to Kinsta
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.KINSTASSHHOST }}
              username: ${{ secrets.KINSTASSHUSERNAME }}
              password: ${{ secrets.KINSTASSHPASSWORD }}
              port: ${{ secrets.KINSTASSHPORT }}
              script: |
                cd ~/public
                git pull origin main
                composer install --no-dev
    

    Workflow F : Déploiement avancé avec notifications Slack

    name: Deploy with Notifications
    
    on:
      push:
        branches:
          - main
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v6
    
          - name: Deploy to server
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.SSHHOST }}
              username: ${{ secrets.SSHUSERNAME }}
              key: ${{ secrets.SSHPRIVATEKEY }}
              port: 22
              script: |
                cd /var/www/html
                git pull origin main
                composer install --no-dev
                wp cache flush
    
          - name: Notify Slack on success
            if: success()
            uses: 8398a7/action-slack@v3
            with:
              status: ${{ job.status }}
              text: 'WordPress site deployed successfully!'
              webhookurl: ${{ secrets.SLACKWEBHOOK }}
    
          - name: Notify Slack on failure
            if: failure()
            uses: 8398a7/action-slack@v3
            with:
              status: ${{ job.status }}
              text: 'WordPress deployment failed!'
              webhookurl: ${{ secrets.SLACKWEBHOOK }}
    

    5. GESTION DES SECRETS – BONNES PRATIQUES (2025)

    Création de secrets dans GitHub

  • Accéder aux paramètres du référentiel (Settings)
  • Cliquer sur « Secrets and variables » dans la section Security
  • Cliquer sur « Actions »
  • Cliquer sur « New repository secret »
  • Ajouter le nom et la valeur
  • Sauvegarder
  • Accès aux secrets dans les workflows

    Syntaxe de variable d’environnement :

    env:
      APIKEY: ${{ secrets.APIKEY }}
    

    Utilisation directe dans les étapes :

    - name: Use secret
      run: echo "Deploying to ${{ secrets.SSHHOST }}"
    

    Paramètres d’entrée :

    with:
      key: ${{ secrets.SSHPRIVATEKEY }}
      password: ${{ secrets.SSHPASSWORD }}
    

    Types et portées des secrets

    Secrets de référentiel :

  • Disponibles uniquement pour un référentiel spécifique
  • Utiliser pour les identifiants spécifiques au projet
  • Secrets d’organisation :

  • Disponibles sur plusieurs référentiels
  • Portée limitée à des référentiels spécifiques uniquement
  • Utiliser avec précaution
  • Secrets d’environnement :

  • Liés à des environnements spécifiques (staging, production)
  • Nécessitent l’approbation d’un réviseur avant l’accès
  • Meilleure pratique pour les déploiements en production
  • Syntaxe pour les secrets d’environnement :

    jobs:
      deploy:
        environment: production  # Référence les secrets spécifiques à l'environnement
        steps:
          - name: Deploy
            uses: appleboy/ssh-action@v1
            with:
              host: ${{ secrets.SSHHOST }}  # Depuis l'environnement production
    

    Variables vs Secrets

    Variables (Non sensibles) :

    env:
      APIURL: ${{ vars.APIURL }}
      NODEENV: ${{ vars.NODEENV }}
    

    Secrets (Sensibles) :

    env:
      DBPASSWORD: ${{ secrets.DBPASSWORD }}
      APITOKEN: ${{ secrets.APITOKEN }}
    

    Bonnes pratiques de sécurité critiques

    1. Utiliser l’accès au privilège minimum

  • Accorder les permissions minimales nécessaires
  • Utiliser les clés de déploiement au lieu des jetons d’accès personnels
  • Préférer l’accès en lecture seule lorsque c’est possible
  • 2. Implémenter OIDC plutôt que des identifiants statiques

    permissions:
      id-token: write  # Requis pour OIDC
      contents: read
    

    3. Faire tourner les secrets régulièrement

  • Tous les 30-90 jours pour les identifiants de production
  • Immédiatement après le départ d’un membre de l’équipe
  • Après toute compromission suspectée
  • 4. Utiliser des jetons à courte durée de vie

  • Préférer les GitHub Apps aux PAT (Personal Access Tokens)
  • Utiliser des identifiants temporaires lorsque c’est possible
  • Implémenter l’expiration des jetons
  • 5. Activer l’analyse des secrets

  • GitHub Advanced Security
  • TruffleHog pour l’analyse pré-commit
  • Détection automatique des secrets
  • 6. Surveiller et auditer

  • Examiner régulièrement les journaux de sécurité
  • Suivre les événements org.updateactionssecret
  • Configurer des alertes pour les modifications de secrets
  • 7. Bonnes pratiques de chiffrement

  • Secrets chiffrés avec des boîtes scellées Libsodium
  • Chiffrés au repos avant d’atteindre GitHub
  • Envisager des couches de chiffrement supplémentaires (AWS KMS, GCP Cloud KMS)
  • 8. Ne jamais coder en dur les identifiants

    MAUVAIS - Ne jamais faire cela

  • name: Deploy
  • run: ssh user@example.com -p 22

    BON - Utiliser des secrets

  • name: Deploy
  • uses: appleboy/ssh-action@v1 with: host: ${{ secrets.SSHHOST }} username: ${{ secrets.SSHUSERNAME }}

    9. Protection des branches

  • Exiger des révisions avant la fusion
  • Empêcher les pushs directs vers les branches main/production
  • Seul le code révisé peut déclencher des workflows sensibles
  • 10. Règles de protection d’environnement

    Exiger une approbation manuelle pour la production

    environment: name: production url: https://example.com

    Liste de contrôle des secrets WordPress courants

    Secrets essentiels :

  • SSHHOST – Nom d’hôte ou IP du serveur
  • SSHUSERNAME – Utilisateur SSH
  • SSHPRIVATEKEY – Clé privée SSH (préférée)
  • SSHPASSWORD – Mot de passe SSH (moins sécurisé)
  • SSHPORT – Port SSH (22 par défaut)
  • Secrets de base de données :

  • DBHOST – Hôte de la base de données
  • DBNAME – Nom de la base de données
  • DBUSER – Nom d’utilisateur de la base de données
  • DBPASSWORD – Mot de passe de la base de données
  • Secrets WordPress :

  • WPENV – Environnement (staging/production)
  • WPHOME – URL du site
  • WPSITEURL – URL WordPress
  • AUTHKEY – Clé d’authentification WordPress
  • SECUREAUTHKEY – Clé d’authentification sécurisée
  • LOGGEDINKEY – Clé de connexion
  • NONCEKEY – Clé nonce
  • Secrets d’intégration :

  • SLACKWEBHOOK – Notifications Slack
  • SENTRYDSN – Suivi des erreurs
  • CLOUDFLAREAPITOKEN – Gestion CDN
  • 6. RÉFÉRENCE DE SYNTAXE DES WORKFLOWS (2025)

    Structure de base d’un workflow

    name: Workflow Name
    on: [push, pullrequest]
    jobs:
      jobname:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v6
          - name: Step name
            run: command
    

    Événements déclencheurs

    Événements push :

    on:
      push:
        branches:
          - main
          - develop
        paths:
          - 'themes/'
          - 'plugins/'
    

    Événements pull request :

    on:
      pullrequest:
        branches:
          - main
        types:
          - opened
          - synchronize
    

    Événements de tag :

    on:
      push:
        tags:
          - 'v'
          - '[0-9]+.[0-9]+.[0-9]+'
    

    Déclenchement manuel :

    on:
      workflowdispatch:
        inputs:
          environment:
            description: 'Environment to deploy'
            required: true
            default: 'staging'
    

    Événements planifiés :

    on:
      schedule:
        - cron: '0 2   '  # Chaque jour à 2h du matin
    

    Dépendances de tâches

    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - run: npm test
    
      deploy:
        needs: test  # S'exécute après la fin de test
        runs-on: ubuntu-latest
        steps:
          - run: npm deploy
    

    Exécution conditionnelle

    - name: Deploy to production
      if: github.ref == 'refs/heads/main'
      run: ./deploy.sh
    
    
  • name: Run on success
  • if: success() run: echo "Success!"
  • name: Run on failure
  • if: failure() run: echo "Failed!"

    Niveaux de variables d’environnement

    Niveau workflow :

    env:
      NODEENV: production
    
    jobs:
      build:
        steps:
          - run: echo $NODEENV
    

    Niveau job :

    jobs:
      build:
        env:
          BUILDTYPE: release
        steps:
          - run: echo $BUILDTYPE
    

    Niveau step :

    - name: Build
      env:
        APIKEY: ${{ secrets.APIKEY }}
      run: npm build
    

    Stratégie de matrice (Versions multiples PHP/Node)

    jobs:
      test:
        strategy:
          matrix:
            php-version: [7.4, 8.0, 8.1, 8.2]
        steps:
          - uses: shivammathur/setup-php@v2
            with:
              php-version: ${{ matrix.php-version }}
    

    Artefacts (Upload/Download)

    - name: Upload build
      uses: actions/upload-artifact@v3
      with:
        name: build-files
        path: dist/
    
    
  • name: Download build
  • uses: actions/download-artifact@v3 with: name: build-files

    Mise en cache des dépendances

    - name: Cache Composer
      uses: actions/cache@v3
      with:
        path: vendor
        key: ${{ runner.os }}-composer-${{ hashFiles('/composer.lock') }}
    
    
  • name: Cache npm
  • uses: actions/cache@v3 with: path: node
    modules key: ${{ runner.os }}-npm-${{ hashFiles('/package-lock.json') }}

    7. CONFIGURATIONS DE DÉPLOIEMENT SPÉCIFIQUES PAR HÉBERGEUR

    WP Engine

    - uses: wpengine/github-action-wpe-site-deploy@v3
      with:
        WPESSHGKEYPRIVATE: ${{ secrets.WPESSHGKEYPRIVATE }}
        WPEENV: production
    

    Kinsta

    - uses: appleboy/ssh-action@v1
      with:
        host: ${{ secrets.KINSTASSHHOST }}
        username: ${{ secrets.KINSTASSHUSERNAME }}
        password: ${{ secrets.KINSTASSHPASSWORD }}
        port: ${{ secrets.KINSTASSHPORT }}
    

    Flywheel

    - uses: easingthemes/ssh-deploy@main
      with:
        SSHPRIVATEKEY: ${{ secrets.FLYWHEELSSHKEY }}
        REMOTEHOST: ${{ secrets.FLYWHEELHOST }}
        REMOTEUSER: ${{ secrets.FLYWHEELUSER }}
        TARGET: ~/publichtml/
    

    DigitalOcean / AWS EC2 / VPS Générique

    - uses: appleboy/ssh-action@v1
      with:
        host: ${{ secrets.VPSHOST }}
        username: ${{ secrets.VPSUSERNAME }}
        key: ${{ secrets.VPSSSHKEY }}
        port: 22
        script: |
          cd /var/www/html
          git pull
          composer install --no-dev
    

    8. COMMANDES COURANTES DE DÉPLOIEMENT WORDPRESS

    Opérations Git

    git pull origin main
    git fetch --all
    git reset --hard origin/main
    

    Composer

    composer install --no-dev --optimize-autoloader
    composer update --no-dev
    composer dump-autoload -o
    

    WP-CLI

    wp cache flush
    wp rewrite flush
    wp core update
    wp plugin update --all
    wp theme update --all
    wp db optimize
    wp cron event run --due-now
    

    Permissions de fichiers

    find . -type d -exec chmod 755 {} ;
    find . -type f -exec chmod 644 {} ;
    chown -R www-data:www-data /var/www/html
    

    Commandes de build

    npm ci --production
    npm run build
    npm run production
    

    9. DÉPANNAGE DES PROBLÈMES COURANTS

    Problème : Échec de la connexion SSH

    Solutions :

  • Vérifier les secrets SSHHOST, SSHUSERNAME, SSHPORT
  • Tester le format de la clé SSH (supprimer la phrase de passe si présente)
  • Vérifier les règles de pare-feu sur le serveur
  • Vérifier que l’IP de l’exécuteur Actions est sur liste blanche
  • Problème : L’action Checkout échoue

    Solutions :

  • Mettre à jour vers actions/checkout@v6
  • Vérifier les permissions du référentiel
  • Vérifier le nom de la branche par défaut
  • Problème : Secrets non accessibles

    Solutions :

  • Vérifier que les noms de secrets correspondent exactement (sensible à la casse)
  • Vérifier que les secrets spécifiques à l’environnement ont la bonne portée
  • S’assurer que les secrets sont définis au niveau référentiel/organisation
  • Problème : Permission refusée sur le serveur

    Solutions :

  • Vérifier que l’utilisateur SSH a les permissions d’écriture
  • Vérifier la propriété des fichiers/répertoires
  • Ajouter l’utilisateur au groupe www-data : usermod -a -G www-data username
  • Problème : Échec de l’installation Composer

    Solutions :

  • Vérifier la compatibilité de la version PHP
  • Vider le cache Composer : composer clear-cache
  • Utiliser le flag --no-scripts si les hooks échouent
  • Vérifier memorylimit dans php.ini
  • 10. OPTIMISATION DES PERFORMANCES

    Accélérer les déploiements

    1. Utiliser des clones superficiels :

    - uses: actions/checkout@v6
      with:
        fetch-depth: 1
    

    2. Mettre en cache les dépendances :

    - uses: actions/cache@v3
      with:
        path: vendor
        key: ${{ runner.os }}-composer-${{ hashFiles('/composer.lock') }}
    

    3. Tâches parallèles :

    jobs:
      test:
        strategy:
          matrix:
            version: [7.4, 8.0, 8.1]
      deploy:
        needs: test
    

    4. Déploiements conditionnels :

    on:
      push:
        paths:
          - 'wp-content/themes/'
          - 'wp-content/plugins/'
    

    SOURCES ET RÉFÉRENCES

    Documentation officielle GitHub :

  • Référentiel actions/checkout
  • Versions d’actions/checkout
  • Marketplace GitHub Actions Checkout
  • Documentation des secrets GitHub Actions
  • Utilisation des secrets dans GitHub Actions
  • Renforcement de la sécurité pour GitHub Actions
  • Actions SSH :

  • Référentiel appleboy/ssh-action
  • Versions appleboy/ssh-action
  • Marketplace appleboy/ssh-action
  • Référentiel easingthemes/ssh-deploy
  • Référentiel Burnett01/rsync-deployments
  • Spécifique à WordPress :

  • Référentiel 10up/actions-wordpress
  • Référentiel 10up/action-wordpress-plugin-deploy
  • Référentiel rtCamp/action-deploy-wordpress
  • Documentation GitHub Action WP Engine
  • Tutoriel Kinsta GitHub Actions
  • Bonnes pratiques de sécurité :

  • Gestion des secrets GitHub Actions – StepSecurity
  • Bonnes pratiques de sécurité GitHub Actions – GitGuardian
  • Bonnes pratiques Blacksmith Security
  • Tutoriels et exemples :

  • Tutoriel Spacelift GitHub Actions Checkout
  • Guide CI/CD WordPress CSS-Tricks
  • Déploiement de thème WordPress Pressidium
  • Pipeline CI/CD WordPress Monstarlab

Statut du document : Prêt pour la production
Date de vérification : 18 décembre 2025
Prochaine révision :
* Mars 2026

Tous les exemples ont été vérifiés par rapport à la documentation officielle et aux référentiels de déploiement WordPress réels actifs en 2025.

Laisser un commentaire