CI/CD pour Laravel : Flux de travail Git & déploiements sans temps d'arrêt
Par Andrea Pollastri · Dernière mise à jour : · lecture gratuite, pas de paywall
L'écart entre « ça marche sur ma machine » et « ça se déploie en toute sécurité » est plus petit que jamais. Ce guide vous présente un flux de travail Git qui se réduit à une équipe composée d'une seule personne, un pipeline CI copier-coller et les modèles de déploiement sans temps d'arrêt qui rendent les versions du vendredi ennuyeuses.
Pourquoi les pipelines sont rentables (même en solo)
CI/CD n'est pas une cérémonie d'entreprise - c'est l'assurance la moins chère qu'une base de code puisse acheter :
- Répétabilité : le pipeline effectue les mêmes contrôles à chaque fois ; les humains ne le font pas.
- L’anxiété liée au déploiement atteint zéro. Lorsque les déploiements se font en un seul clic et que les restaurations sont en un seul lien symbolique, vous expédiez souvent de petites modifications au lieu de rarement des lots effrayants.
- La qualité des avis augmente car CI a déjà détecté les problèmes mécaniques avant un regards humains.
- Le code généré par l'IA rend ceci non facultatif : si les agents écrivent davantage de votre code, le le pipeline est l'arbitre qui maintient l'objectivité des normes (plus dans le développement basé sur les spécifications guider).
Un workflow Git réduit
Ignorez git-flow sauf si vous expédiez des versions en boîte. Pour les applications Web, les branches basées sur le tronc avec des branches de courte durée l'emportent :
mainest toujours déployable. Protégez-le : pas de poussées directes, les PR doivent passer CI.- Les succursales vivent des jours, pas des semaines.
feature/checkout-vat,fix/queue-timeout— fusionner ou supprimer. - Engagements conventionnels (
feat:,fix:,chore:) rendre l'historique numérisable et les journaux de modifications automatisables. - Versions de balises (
v2026.08.04ou semver) pour que vous puissiez toujours répondre "qu'est-ce qui s'est passé en direct mardi?". - Les PR sont la piste d'audit. Même en solo : une auto-évaluation de deux minutes avec CI green surprend montant surprenant.
Le pipeline CI, prêt pour le copier-coller
Quatre étapes, chacune échouant rapidement : style, analyse statique, tests, audit de sécurité. Voici un GitHub complet
Workflow d'actions pour une application Laravel (déposez-la .github/workflows/ci.yml):
name: CI
on:
pull_request:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: mbstring, xml, curl, zip, intl, pdo_sqlite
coverage: none
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Prepare environment
run: |
cp .env.example .env
php artisan key:generate
- name: Code style (Pint)
run: vendor/bin/pint --test
- name: Static analysis (Larastan)
run: vendor/bin/phpstan analyse --memory-limit=1G
- name: Tests (Pest)
run: php artisan test --parallel
- name: Security audit
run: composer audit
Notes à voler :
- Pinte, Larastan, Pest, audit — dans cet ordre : les chèques les moins chers en premier, donc les échecs sont rapide.
--parallelsur Pest généralement, il réduit de moitié le temps passé en suite gratuitement.composer auditéchoue la construction lorsqu'une dépendance a un CVE connu - votre fil-piège de la chaîne d’approvisionnement (voir le sécurité liste de contrôle pour la section complète sur l'hygiène des dépendances, y compris l'analyse spécifique à Laravel avec Point de contrôle).- Ajouter
npm ci && npm run buildcomme travail distinct si la construction de vos actifs est non trivial.
Options de déploiement sans temps d'arrêt
Zéro temps d'arrêt signifie : créer la nouvelle version à côté de l'ancienne, échanger de manière atomique, redémarrer les travailleurs. Trois façons de l'obtenir:
1. Webhook push-to-deploy (par défaut recommandé)
Votre hôte Git appelle un webhook en push ; le serveur crée une nouvelle version dans releases/, court
composer install, migrate --force et met en cache, échange le current
lien symbolique et redémarre les travailleurs de file d'attente. C'est exactement ce que Cipi configure
automatiquement lorsque vous connectez GitHub ou GitLab à une application : déployez les clés, webhook, les versions et le lien symbolique
swap inclus, ainsi que les builds d'actifs de nœud sur les instantanés de base de données de déploiement et de pré-déploiement dans Cipi 5. Coût d'installation :
uncipi app create.
2. Déploiement piloté par CI (SSH à partir d'actions)
Le pipeline crée des artefacts et les transmet via SSH (Deployer ou rsync + script). Plus de contrôle, plus YAML à posséder - cela en vaut la peine lorsque vous avez besoin de créer des artefacts identiques dans tous les environnements.
3. L'hybride
CI exécute des tests ; en vert, il atteint le déploiement webhook. Vous obtenez des déploiements sécurisés sans déplacer le déploiement
logique dans CI. Avec Cipi, cela fait une seule ligne curl à la fin du flux de travail.
Après le déploiement
- Bilans de santé : vérifiez les réponses de l'application avant de célébrer - Cipi 5 santé de l'application des navires des contrôles sur lesquels vous pouvez pointer des moniteurs.
- Testez le chemin critique : un
curlà la page de connexion et un à un le point de terminaison authentifié détecte la plupart des états « déployés mais cassés ». - Surveillez les exceptions pendant 15 minutes. Un tracker self-hosted comme Google effectue le post-déploiement pic d’erreur visible immédiatement.
- Prévenir l'équipe : déployer des notifications sur Slack ou Telegram boucler la boucle (Cipi's les documents incluent des exemples de notifications CI prêts à l'emploi).
Stratégie de migration et de restauration
- Agrandir/contracter : ajoutez la nouvelle colonne et le code qui écrit les deux en premier ; enlever l'ancien on sort plus tard. Ne renommez jamais sur place.
- Les migrations destructrices ont leur propre version - après le code qui a cessé d'utiliser le les données sont vérifiées en production.
- La restauration du code est le lien symbolique revenir à la version précédente ; c'est pourquoi les versions le modèle compte.
- La restauration des données est un instantané. Cipi 5 prend un instantané de la base de données avant le déploiement automatiquement, donc la pire erreur de migration a un bouton d'annulation.
Mettez cela en pratique avec Cipi
Cipi est le déploiement gratuit open-source CLI référencé tout au long de ce guide : une commande transforme un nouveau Ubuntu VPS dans un serveur de production renforcé pour Laravel — Nginx, PHP-FPM ou Octane, MariaDB ou PostgreSQL, files d'attente, planificateur, SSL et déploiements Git sans temps d'arrêt inclus.
Questions fréquemment posées
Ai-je besoin de CI/CD en tant que développeur solo Laravel ?
Oui, sans doute plus qu'une équipe, car personne n'examine votre travail. Un pipeline qui exécute l'audit Pint, Larastan, Pest et composer à chaque poussée est une deuxième paire d'yeux infatigable, et les déploiements basés sur webhook signifient que l'expédition cesse d'être un rituel manuel.
Comment puis-je obtenir des déploiements sans temps d'arrêt pour Laravel ?
Utilisez le modèle de versions : créez la nouvelle version dans son propre répertoire, exécutez des migrations et des caches, puis échangez atomiquement un lien symbolique et redémarrez les files d'attente. Des outils tels que Cipi configurent cela automatiquement pour les push GitHub et GitLab, afin que vous obteniez des déploiements sans temps d'arrêt sans écrire de scripts de déploiement.
Combien de temps un pipeline CI Laravel devrait-il prendre ?
Moins de cinq minutes pour le cas courant, ou les développeurs commencent à le contourner. Exécutez Pest en parallèle, mettez en cache les dépendances Composer et déplacez les tests lents du navigateur vers une tâche nocturne au lieu de bloquer chaque PR.
Les migrations de bases de données sont-elles sécurisées avec des déploiements sans temps d'arrêt ?
Oui, avec le modèle d'expansion/contrat : effectuez d'abord des modifications additives, déployez du code qui fonctionne avec les deux schémas et supprimez les anciennes colonnes dans une version ultérieure. Conservez les modifications destructrices dans leur propre déploiement et prenez un instantané de pré-déploiement (automatique dans Cipi 5) afin que les erreurs soient réversibles.
Est-il sécuritaire de déployer le vendredi ?
Avec de petites différences, un pipeline vert, des contrôles de santé et une restauration en une seule commande – oui. La peur du vendredi est un symptôme de déploiements manuels en gros lots ; corrigez le processus et le jour de la semaine n’a plus d’importance.