# Buddy, Deployer ou GitHub Actions pour un premier pipeline de déploiement

> Trois options pour sortir du déploiement manuel par FTP, avec des courbes d'apprentissage et des coûts très différents selon l'équipe.

- Auteur : Clément Hadrot
- Publié le : 2021-01-01
- Mis à jour le : 2021-01-01
- Catégorie : Outils &amp; workflow
- URL : https://wpmoderne.dev.wordpress-developpement.fr/outils/buddy-deployer-github-actions-premier-pipeline/

## L’essentiel

- Buddy pour une interface visuelle sans code
- Deployer pour un contrôle fin en PHP
- GitHub Actions pour rester dans l'écosystème Git

Le déploiement manuel par FTP a un mérite : il ne demande aucune configuration. Il a aussi un défaut majeur, qui finit toujours par se rappeler au mauvais moment : aucune trace de ce qui a été déployé, aucune garantie que le fichier envoyé correspond bien à ce qui est dans le dépôt Git, et un risque d'erreur humaine à chaque transfert. Pour une équipe qui déploie encore ainsi, la première mise en place d'un pipeline automatisé représente un vrai changement d'habitudes, et le choix de l'outil compte autant que la technique elle-même.

Trois options reviennent souvent pour ce premier pas : Buddy, une plateforme avec une interface visuelle pensée pour limiter la configuration textuelle ; Deployer, un outil PHP en ligne de commande pensé spécifiquement pour déployer des applications PHP ; et GitHub Actions, la solution native de la plateforme d'hébergement Git déjà utilisée par l'équipe.

## Buddy : la voie visuelle

Buddy propose de construire un pipeline par glisser-déposer d'actions prédéfinies : cloner, exécuter Composer, transférer par SFTP, vider un cache. Pour une équipe qui n'a jamais écrit de fichier YAML de configuration CI, cette approche réduit fortement la barrière d'entrée : le premier pipeline de déploiement fonctionnel peut être monté en moins d'une heure, sans écrire une seule ligne de configuration.

La contrepartie est le coût : Buddy facture un abonnement mensuel dès que le nombre d'exécutions dépasse un seuil gratuit assez bas, ce qui peut peser sur une petite structure qui déploie fréquemment plusieurs projets clients.

## Deployer : le contrôle fin en PHP

> L'essentiel à retenir : Buddy pour une interface visuelle sans code ; Deployer pour un contrôle fin en PHP ; GitHub Actions pour rester dans l'écosystème Git

Deployer s'installe comme un outil en ligne de commande et se configure via un fichier `deploy.php` écrit en PHP, ce qui le rend naturellement familier à une équipe déjà à l'aise avec ce langage :

```
namespace Deployer;

require 'recipe/wordpress.php';

host('production')
    ->setHostname('serveur.exemple.fr')
    ->set('deploy_path', '/var/www/monsite');

task('deploy', [
    'deploy:prepare',
    'deploy:vendors',
    'deploy:publish',
]);
```

Deployer propose une recette WordPress prête à l'emploi, gère nativement les déploiements atomiques (chaque version dans son propre dossier, avec un lien symbolique basculé à la fin), et permet un rollback simple avec `dep rollback`. C'est gratuit, open source, et ne dépend d'aucune plateforme externe : le pipeline se déclenche depuis n'importe quel poste ou serveur CI.

## GitHub Actions : rester dans l'écosystème existant

Pour une équipe qui héberge déjà son code sur GitHub, GitHub Actions a l'avantage de ne rien ajouter à la chaîne d'outils : pas de nouveau compte à créer, pas de nouvelle plateforme à surveiller. Un fichier `.github/workflows/deploy.yml` suffit pour déclencher un déploiement à chaque push sur la branche principale, en utilisant une action communautaire de synchronisation SFTP ou rsync.

## Tableau comparatif

| Critère | Buddy | Deployer | GitHub Actions |
| --- | --- | --- | --- |
| Courbe d'apprentissage | Très faible (interface visuelle) | Moyenne (fichier PHP) | Moyenne (YAML) |
| Coût | Payant au-delà d'un seuil | Gratuit | Gratuit dans la limite de minutes incluses |
| Rollback intégré | Oui, via l'interface | Oui, en ligne de commande | Non, à construire soi-même |
| Dépendance à une plateforme | Forte | Aucune | Liée à GitHub |

## Ce qui a orienté notre choix

Pour une équipe qui débute avec un déploiement 100 % manuel, Buddy reste le point d'entrée le plus rapide à mettre en place, malgré son coût. Pour une équipe à l'aise avec la ligne de commande et qui veut garder la main sur chaque étape sans dépendre d'un service tiers payant, Deployer offre le meilleur rapport contrôle/coût. GitHub Actions convient particulièrement bien quand l'équipe utilise déjà GitHub pour d'autres automatisations et souhaite centraliser CI et déploiement au même endroit.

> Le conseil qu'on donne systématiquement à une équipe qui hésite : commencer par l'outil qui demande le moins de nouvelles compétences, quitte à en changer plus tard. Le vrai gain, au départ, c'est de sortir du FTP manuel, pas de choisir l'outil parfait du premier coup.

## Pour aller plus loin

Ces trois outils ne s'excluent pas mutuellement selon les projets d'une même agence : un client avec un hébergement mutualisé simple peut très bien rester sur Buddy, pendant qu'un projet plus exigeant technique passe par Deployer sur un VPS dédié. L'essentiel, pour ce premier pas hors du FTP manuel, est de choisir un outil que l'équipe comprendra et maintiendra réellement, plutôt que la solution la plus impressionnante sur le papier.
