Le WordPress d'aujourd'hui, décodé pour les développeurs

Hébergement & serveurs

GitLab CI ou Bitbucket Pipelines pour déployer un thème sans y toucher

Comparatif pratique entre GitLab CI et Bitbucket Pipelines pour automatiser le déploiement d'un thème WordPress par rsync ou SSH, sans jamais toucher un client FTP.

Par WordPress Développement • 9 avril 2023 • 4 min de lecture • Aucun commentaire
GitLab CI ou Bitbucket Pipelines pour déployer un thème sans y toucher

GitLab CI d’un côté, Bitbucket Pipelines de l’autre : deux options s’imposent naturellement à une agence déjà hébergée sur l’une de ces plateformes pour son code source, dès qu’elle veut cesser de copier manuellement un thème modifié par FTP, fichier par fichier, en espérant n’avoir rien oublié. Une fois un pipeline de déploiement automatisé en place, le temps perdu chaque mois sur cette copie manuelle tombe à zéro.

Les tests automatisés du thème lui-même — vérification de rendu, tests unitaires PHP — ne sont pas comparés ici : le sujet se limite strictement à la capacité de chaque plateforme à déployer automatiquement un thème vers un serveur d’hébergement dès qu’un commit est poussé sur une branche donnée.

Le principe commun aux deux plateformes

Dans les deux cas, le mécanisme repose sur le même principe : un fichier de configuration versionné dans le dépôt (.gitlab-ci.yml ou bitbucket-pipelines.yml) décrit une suite d’étapes exécutées automatiquement dans un conteneur, déclenchées par un événement Git — le plus souvent, un commit fusionné sur la branche principale.

Comparatif des deux approches

L'essentiel à retenir : Comparer le coût réel des minutes CI, pas seulement l'offre gratuite affichée ; Privilégier le déploiement par rsync via SSH plutôt que FTP dans les deux cas ; Séparer clairement les variables sensibles du code du pipeline
CritèreGitLab CIBitbucket Pipelines
Syntaxe de configurationYAML avec un système d’héritage par extends, pratique pour mutualiser des étapes entre plusieurs projets de thèmesYAML plus linéaire, moins de mécanismes d’héritage natif entre pipelines
Gestion des variables sensiblesVariables protégées par branche, masquées dans les journaux d’exécutionVariables de dépôt ou d’espace de travail, également masquables
Environnements d’exécutionChoix large d’images Docker officielles PHP, personnalisables facilementMême principe, avec une bibliothèque d’images légèrement moins étendue en pratique
Intégration native à l’hébergeur de codeTrès forte si le dépôt est déjà sur GitLab, y compris auto-hébergéTrès forte si le dépôt est déjà sur Bitbucket, écosystème Atlassian
Quota gratuit observéEnviron 400 minutes mensuelles sur l’offre gratuiteQuota comparable, autour de 50 minutes selon la formule, souvent plus limité pour un usage régulier

Un pipeline concret pour déployer un thème par rsync

Sur les deux plateformes, le déploiement final vers l’hébergement WordPress s’appuie de la même façon sur rsync via SSH, en évitant délibérément le FTP, protocole non chiffré par nature et mal adapté à une synchronisation différentielle fiable.

deploy_theme:
  stage: deploy
  image: alpine:3.18
  before_script:
    - apk add --no-cache openssh-client rsync
    - eval $(ssh-agent -s)
    - echo "$CLE_SSH_PRIVEE" | ssh-add -
  script:
    - rsync -avz --delete wp-content/themes/mon-theme/
      utilisateur@serveur:/home/site/wp-content/themes/mon-theme/
  only:
    - main

Ce pipeline, écrit ici au format GitLab CI, se transpose presque à l’identique vers Bitbucket Pipelines : seule la structure globale du fichier YAML change, la logique de connexion SSH et de synchronisation par rsync reste rigoureusement identique.

Le point commun à ne jamais négliger

Sur les deux plateformes, la clé SSH privée utilisée pour la connexion au serveur ne doit jamais apparaître en clair dans le fichier de configuration versionné. Elle doit systématiquement transiter par le mécanisme de variables protégées propre à chaque plateforme, avec un accès restreint aux branches concernées par le déploiement en production.

  • Créer une clé SSH dédiée au déploiement, distincte de toute clé personnelle d’un développeur de l’équipe.
  • Restreindre cette clé côté serveur à une commande forcée limitée au strict nécessaire, via l’option command= du fichier authorized_keys.
  • Révoquer immédiatement cette clé en cas de départ d’un membre de l’équipe ayant eu accès à la configuration du pipeline.

Notre verdict

Le choix entre GitLab CI et Bitbucket Pipelines pour déployer un thème WordPress dépend avant tout de la plateforme d’hébergement de code déjà utilisée par l’agence : les deux couvrent le besoin avec une efficacité comparable, et changer de dépôt uniquement pour son système d’intégration continue ne se justifie que rarement. GitLab CI conserve un léger avantage sur la mutualisation de configuration entre plusieurs projets de thèmes similaires, grâce à son système d’héritage YAML plus mature, tandis que Bitbucket Pipelines reste pertinent pour une équipe déjà installée dans l’écosystème Atlassian et ses outils de gestion de projet associés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi