CI/CD für Laravel: Git-Workflow & Bereitstellung ohne Ausfallzeiten
Von Andrea Pollastri · Letzte Aktualisierung: · Kostenlose Lektüre, keine Paywall
Die Lücke zwischen „es funktioniert auf meinem Computer“ und „es stellt sich sicher bereit“ ist kleiner als je zuvor. Dieser Leitfaden bietet Ihnen einen Git-Workflow, der sich auf ein Team von einem Team reduzieren lässt, eine Copy-Paste-CI-Pipeline und die Bereitstellungsmuster ohne Ausfallzeiten, die Freitags-Releases langweilig machen.
Warum sich Pipelines lohnen (auch solo)
CI/CD ist keine Unternehmenszeremonie – es ist die günstigste Versicherung, die eine Codebasis kaufen kann:
- Wiederholbarkeit: Die Pipeline führt jedes Mal dieselben Prüfungen durch. Menschen nicht.
- Die Einsatzangst geht gegen Null. Wenn Bereitstellungen ein Push und Rollbacks ein Symlink sind, Sie versenden oft kleine Änderungen, statt nur selten beängstigende Chargen.
- Die Bewertungsqualität steigt weil CI die mechanischen Probleme bereits vor einem erkannt hat menschliches Aussehen.
- Durch KI-generierten Code ist dies nicht optional: Wenn Agenten mehr von Ihrem Code schreiben, wird der Pipeline ist der Schiedsrichter, der die Standards objektiv hält (mehr im spezifikationsgesteuerte Entwicklung Führer).
Ein Git-Workflow, der verkleinert werden kann
Überspringen Sie git-flow, es sei denn, Sie versenden verpackte Veröffentlichungen. Bei Web-Apps gewinnt Trunk-basiert mit kurzlebigen Zweigen:
mainist immer einsetzbar. Schützen Sie es: Keine direkten Pushs, PRs müssen passieren CI.- Zweige leben Tage, nicht Wochen.
feature/checkout-vat,fix/queue-timeout– zusammenführen oder löschen. - Konventionelle Commits (
feat:,fix:,chore:) Machen Sie den Verlauf durchsuchbar und Änderungsprotokolle automatisierbar. - Tag-Veröffentlichungen (
v2026.08.04oder Semver), sodass Sie immer antworten können: „Was war?“ live am Dienstag?". - PRs sind der Prüfpfad. Sogar alleine: Eine zweiminütige Selbstbewertung mit CI-Grün fängt einen ein überraschend viel.
Die CI-Pipeline, bereit zum Kopieren und Einfügen
Vier Phasen, die jeweils schnell scheitern: Stil, statische Analyse, Tests, Sicherheitsaudit. Hier ist eine vollständige GitHub
Aktionsworkflow für eine Laravel-App (einbinden). .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
Notizen, die es wert sind, gestohlen zu werden:
- Pint, Larastan, Pest, Audit – in dieser Reihenfolge: Billigste Prüfungen zuerst, also Ausfälle schnell.
--parallelauf Pest Normalerweise halbiert sich die Suite-Zeit kostenlos.composer auditschlägt beim Build fehl wenn eine Abhängigkeit einen bekannten CVE hat – Ihr Stolperdraht der Lieferkette (siehe Sicherheit Checkliste für den vollständigen Abschnitt zur Abhängigkeitshygiene, einschließlich Laravel-spezifischer Scans mit Kontrollpunkt).- Hinzufügen
npm ci && npm run buildals separater Job, wenn Ihr Vermögen aufgebaut ist nicht trivial.
Bereitstellungsoptionen ohne Ausfallzeiten
Null Ausfallzeit bedeutet: das neue Release neben dem alten erstellen, atomar austauschen, Worker neu starten. Drei Möglichkeiten, es zu bekommen:
1. Webhook Push-to-Deploy (empfohlene Standardeinstellung)
Ihr Git-Host ruft bei Push einen webhook auf; Der Server erstellt eine neue Version releases/, läuft
composer install, migrate --force und Caches, tauscht die current
Symlink und startet Warteschlangenarbeiter neu. Genau das ist es Cipi konfiguriert
automatisch, wenn Sie GitHub oder GitLab mit einer App verbinden – Schlüssel, webhook, Releases und Symlink bereitstellen
Swap inklusive, plus Knoten-Asset-Builds für die Bereitstellung und Datenbank-Snapshots vor der Bereitstellung in Cipi 5. Einrichtungskosten:
einscipi app create.
2. CI-gesteuerte Bereitstellung (SSH von Aktionen)
Die Pipeline erstellt Artefakte und überträgt sie über SSH (Deployer oder rsync + Skript). Mehr Kontrolle, mehr YAML zu besitzen – es lohnt sich, wenn Sie Build-Artefakte benötigen, die in allen Umgebungen identisch sind.
3. Der Hybrid
CI führt Tests durch; Bei Grün wird der Deploy webhook erreicht. Sie erhalten geschlossene Bereitstellungen, ohne die Bereitstellung zu verschieben
Logik in CI. Bei Cipi ist das eine Einzeile curl am Ende des Workflows.
Nach der Bereitstellung
- Gesundheitschecks: Überprüfen Sie die App-Antworten, bevor Sie feiern – Cipi 5 verbessert die App-Gesundheit Schecks, auf die Sie Monitore richten können.
- Rauchtest auf dem kritischen Pfad: eins
curlzur Anmeldeseite und eins zu einem authentifizierte Endpunkte fangen die meisten „Bereitgestellt, aber defekt“-Zustände ab. - Beobachten Sie Ausnahmen 15 Minuten lang. Ein self-hosted-Tracker wie Boogle führt die Nachbereitung durch Fehlerspitze sofort sichtbar.
- Benachrichtigen Sie das Team: Stellen Sie Benachrichtigungen an Slack oder Telegram bereit und schließen Sie den Kreis (Cipi's Die Dokumente enthalten vorgefertigte Beispiele für CI-Benachrichtigungen.
Migrationen und Rollback-Strategie
- Erweitern/Verkleinern: Fügen Sie die neue Spalte und den Code hinzu, der beide zuerst schreibt. das Alte entfernen man veröffentlicht später. Niemals an Ort und Stelle umbenennen.
- Destruktive Migrationen erhalten ihre eigene Veröffentlichung – nach dem Code, der die Verwendung von gestoppt hat Die Daten werden in der Produktion überprüft.
- Code-Rollback ist der Symlink zurück zur vorherigen Version; Deshalb die Veröffentlichungen Muster ist wichtig.
- Das Daten-Rollback ist eine Momentaufnahme. Cipi 5 erstellt vor der Bereitstellung einen Datenbank-Snapshot automatisch, so dass der schlimmste Migrationsfehler über eine Schaltfläche zum Rückgängigmachen verfügt.
Setzen Sie dies mit Cipi in die Praxis um
Cipi ist die kostenlose open-source Bereitstellung CLI, auf die in diesem Handbuch verwiesen wird: Ein Befehl verwandelt einen neuen Ubuntu VPS in einen gehärteten Produktionsserver für Laravel – Nginx, PHP-FPM oder Octane, MariaDB oder PostgreSQL, Warteschlangen, Scheduler, SSL und Git-Bereitstellungen ohne Ausfallzeiten enthalten.
Häufig gestellte Fragen
Benötige ich CI/CD als Solo-Entwickler von Laravel?
Ja – wohl mehr als ein Team, weil niemand Ihre Arbeit überprüft. Eine Pipeline, die bei jedem Push ein Pint-, Larastan-, Pest- und composer-Audit ausführt, ist ein unermüdliches zweites Augenpaar, und webhook-basierte Bereitstellungen bedeuten, dass der Versand kein manuelles Ritual mehr ist.
Wie erhalte ich Bereitstellungen ohne Ausfallzeiten für Laravel?
Verwenden Sie das Release-Muster: Erstellen Sie die neue Version in einem eigenen Verzeichnis, führen Sie Migrationen und Caches aus, tauschen Sie dann atomar einen Symlink aus und starten Sie die Warteschlangenarbeiter neu. Tools wie Cipi konfigurieren dies automatisch für GitHub- und GitLab-Pushs, sodass Sie Bereitstellungen ohne Ausfallzeiten erhalten, ohne Bereitstellungsskripts schreiben zu müssen.
Wie lange sollte eine Laravel CI-Pipeline dauern?
Für den Normalfall dauert es weniger als fünf Minuten, sonst beginnen die Entwickler damit, ihn zu umgehen. Führen Sie Pest parallel aus, speichern Sie Composer-Abhängigkeiten im Cache und verlagern Sie langsame Browsertests auf einen nächtlichen Job, anstatt jeden PR zu blockieren.
Sind Datenbankmigrationen bei Bereitstellungen ohne Ausfallzeiten sicher?
Ja, mit dem Expand/Contract-Muster: Nehmen Sie zuerst additive Änderungen vor, stellen Sie Code bereit, der mit beiden Schemata funktioniert, und entfernen Sie alte Spalten in einer späteren Version. Behalten Sie destruktive Änderungen in ihrer eigenen Bereitstellung bei und erstellen Sie vor der Bereitstellung einen Snapshot (automatisch in Cipi 5), damit Fehler reversibel sind.
Ist der Einsatz freitags sicher?
Mit kleinen Unterschieden, einer grünen Pipeline, Gesundheitsprüfungen und Rollback mit einem Befehl – ja. Die Freitagsangst ist ein Symptom für manuelle Bereitstellungen in großen Mengen. Korrigieren Sie den Vorgang und der Wochentag spielt keine Rolle mehr.