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

| Critère | GitLab CI | Bitbucket Pipelines |
|---|---|---|
| Syntaxe de configuration | YAML avec un système d’héritage par extends, pratique pour mutualiser des étapes entre plusieurs projets de thèmes | YAML plus linéaire, moins de mécanismes d’héritage natif entre pipelines |
| Gestion des variables sensibles | Variables protégées par branche, masquées dans les journaux d’exécution | Variables de dépôt ou d’espace de travail, également masquables |
| Environnements d’exécution | Choix large d’images Docker officielles PHP, personnalisables facilement | Même principe, avec une bibliothèque d’images légèrement moins étendue en pratique |
| Intégration native à l’hébergeur de code | Trè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 gratuite | Quota 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 fichierauthorized_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.