Zurück zum Blog

Wie Sie Bitbucket Pipelines für CI/CD in der Webentwicklung mit WordPress und Drupal nutzen

2023-12-026 Min Lesezeit

In der Welt der Website-Erstellung ist es wichtig, schnell und fehlerfrei zu arbeiten. Continuous Integration und Continuous Deployment (CI/CD) helfen dabei, indem sie Teile unserer Arbeit automatisieren. In diesem Beitrag zeige ich Ihnen, wie Sie Bitbucket Pipelines nutzen können, um verschiedene Aufgaben zu automatisieren, wie z. B. das Testen und Bereitstellen von Projekten, die mit Drupal und WordPress, zwei weit verbreiteten Content-Management-Systemen, erstellt wurden.

Einführung in Bitbucket und Git

Bevor wir uns mit den Feinheiten von Bitbucket Pipelines befassen, ist es wichtig, Bitbucket selbst zu verstehen. Bitbucket, Teil der Atlassian-Suite, ist ein webbasierter Hosting-Dienst für Versionskontroll-Repositories. Es wird häufig für die Git-Repository-Verwaltung verwendet und bietet sowohl private als auch öffentliche Repositories. Diese Funktion, insbesondere die Verfügbarkeit privater Repositories in der kostenlosen Stufe, macht Bitbucket zur ersten Wahl für Teams und einzelne Entwickler. Es geht nicht nur um das Hosting von Code; Bitbucket integriert sich mit anderen Atlassian-Produkten wie Jira und Bamboo und schafft so ein nahtloses Ökosystem für die Softwareentwicklung, von der Planung bis zur Bereitstellung. Git, das Rückgrat von Bitbucket, ist ein verteiltes Versionskontrollsystem, das es mehreren Entwicklern ermöglicht, effizient an derselben Codebasis zusammenzuarbeiten.

Was ist Bitbucket Pipelines?

Stellen Sie sich ein Werkzeug vor, das sofort einsatzbereit ist, sobald Sie Änderungen an Ihrem Remote-Repository pushen. Das ist Bitbucket Pipelines für Sie. Integriert in Ihr Bitbucket-Repository automatisiert es jedes Mal, wenn Sie Ihren Code aktualisieren, eine Vielzahl von Aufgaben. Diese Aufgaben werden in einer Konfigurationsdatei namens bitbucket-pipelines.yml definiert. Die Bandbreite der automatisierten Schritte, die es ausführen kann, umfasst, ist aber nicht beschränkt auf:

  1. Code testen: Ausführen von Unit-Tests, Integrationstests und anderen automatisierten Tests, um die Codequalität sicherzustellen.
  2. End-to-End-Tests: Ausführen von E2E-Tests, um reale Benutzerszenarien zu simulieren und die vollständige Funktionalität und Benutzererfahrung der Anwendung zu validieren.
  3. Code bereitstellen: Automatisches Bereitstellen von Code in verschiedenen Umgebungen wie Staging oder Produktion.
  4. Artefakte erstellen: Kompilieren von Code oder Erstellen von Anwendungen in bereitstellbare Pakete oder ausführbare Dateien.
  5. Skripte ausführen: Ausführen benutzerdefinierter Skripte für verschiedene Zwecke, wie z. B. Datenbankmigrationen oder Bereinigungsaufgaben.
  6. Linting und Code-Analyse: Überprüfen des Codes auf Syntaxfehler, Formatierungsprobleme und potenzielle Fehler.
  7. Benachrichtigungen: Senden von Benachrichtigungen oder Alarmen basierend auf dem Ergebnis von Pipeline-Schritten.
  8. Docker-Operationen: Erstellen, Ausführen und Pushen von Docker-Images in Registries.
  9. Sicherheitsüberprüfungen: Durchführen von Sicherheitsüberprüfungen zur Identifizierung von Schwachstellen im Code.
  10. Dokumentationserstellung: Automatisches Erstellen und Aktualisieren von Dokumentationen basierend auf Codeänderungen.
  11. Leistungstests: Durchführen von Last- und Leistungstests zur Bewertung des Anwendungsverhaltens unter Belastung.

Mit diesen Funktionen verbessert Bitbucket Pipelines die Effizienz, Konsistenz und Zuverlässigkeit Ihres Softwareentwicklungsprozesses.

Einrichten eines Repositories mit Bitbucket Pipelines

1. Repository erstellen oder auswählen

  • Schritt 1: Melden Sie sich bei Ihrem Bitbucket-Konto an.
  • Schritt 2: Erstellen Sie ein neues Repository oder wählen Sie ein vorhandenes aus, in dem Sie Bitbucket Pipelines einrichten möchten.

2. Bitbucket Pipelines initialisieren

  • Schritt 3: Navigieren Sie in Ihrem Repository zum Abschnitt „Pipelines“ in der linken Seitenleiste.
Bitbucket Pipelines
  • Schritt 4: Klicken Sie auf „Erste Pipeline erstellen“. Bitbucket zeigt eine Vielzahl von Vorlagen an.
  • Schritt 5: Wählen Sie eine Vorlage, die am besten zum Technologie-Stack Ihres Projekts passt. Wählen Sie beispielsweise „PHP-Anwendung erstellen“ für ein PHP-basiertes Projekt.
  • Schritt 6: Bitbucket zeigt die generierte Datei bitbucket-pipelines.yml basierend auf der ausgewählten Vorlage an. Überprüfen Sie die Pipeline-Konfiguration, um sicherzustellen, dass sie mit den Anforderungen Ihres Projekts übereinstimmt. Diese Datei enthält vordefinierte Schritte zum Testen und Linting Ihres PHP-Codes.
  • Schritt 7: Sie können die Datei direkt in der Bitbucket-Oberfläche bearbeiten, um die Pipeline-Schritte an die Bedürfnisse Ihres Projekts anzupassen. Stellen Sie sicher, dass Sie alle zusätzlichen Build-, Test- oder Bereitstellungsschritte definieren, die Ihr Projekt benötigt.
  • Schritt 8: Sobald Sie die Konfiguration überprüft und optional bearbeitet haben, klicken Sie auf „Datei committen“, um die Datei bitbucket-pipelines.yml in Ihrem Repository zu speichern.

3. SSH-Schlüssel für den Serverzugriff hinzufügen (Optional)

  • Schritt 9: Navigieren Sie zu „Repository-Einstellungen“, dann zu „SSH-Schlüssel“ unter „Pipelines“, wenn Ihr Bereitstellungsprozess SSH-Zugriff auf Ihren Server erfordert.
  • Schritt 10: Hier können Sie entweder ein neues SSH-Schlüsselpaar generieren oder ein vorhandenes hinzufügen, indem Sie auf „Eigene Schlüssel verwenden“ klicken.
  • Schritt 11: Wenn Sie einen vorhandenen Schlüssel hinzufügen, geben Sie den privaten Schlüssel in das vorgesehene Feld ein und versehen Sie ihn mit einem Label (z. B. „Bereitstellungsserver“).
  • Schritt 12: Damit der SSH-Schlüssel funktioniert, müssen Sie auch die Host-Informationen des Servers unter „Bekannte Hosts“ hinzufügen. Geben Sie die Host-Adresse ein und rufen Sie den Fingerabdruck des Hosts ab, um sichere Verbindungen zu gewährleisten.
  • Schritt 13: Speichern Sie die SSH-Schlüssel- und bekannten Host-Details.

4. Repository-Variablen definieren

  • Schritt 14: Gehen Sie zu „Repository-Einstellungen“ und klicken Sie unter „Pipelines“ auf „Repository-Variablen“.
  • Schritt 15: Klicken Sie auf die Schaltfläche „Hinzufügen“, um eine neue Variable zu erstellen.
  • Schritt 16: Geben Sie den „Namen“ für die Variable ein, z. B. DEV_SERVER, und den entsprechenden „Wert“.
  • Schritt 17: Wenn die Variable sensibel ist, stellen Sie sicher, dass das Kontrollkästchen „Gesichert“ aktiviert ist, um den Wert in den Protokollen auszublenden.
  • Schritt 18: Klicken Sie auf „Hinzufügen“, um die Variable zu speichern.

5. Bereitstellungsumgebungen definieren

  • Schritt 19: Navigieren Sie in den „Repository-Einstellungen“ zu „Bereitstellungen“ unter „Pipelines“.
  • Schritt 20: Definieren Sie Ihre Bereitstellungsumgebungen. Bitbucket unterstützt bis zu hundert Bereitstellungsumgebungen unter den Kategorien: Test, Staging und Produktion.
  • Schritt 21: Für jede Umgebung können Sie unterschiedliche Konfigurationen festlegen. Geben Sie die umgebungsspezifischen Details wie URLs, Serverpfade oder andere relevante Daten als Repository-Variablen ein und versehen Sie sie zur besseren Übersichtlichkeit mit dem Umgebungsnamen, z. B. TEST_, STAGE_ und PROD_.
  • Schritt 22: Stellen Sie sicher, dass alle sensiblen Informationen für jede Umgebung gesichert sind. Bitbucket maskiert gesicherte Variablen in Protokollen und der Benutzeroberfläche.

6. Einrichtung abschließen

  • Schritt 23: Committen Sie alle Änderungen an der Datei bitbucket-pipelines.yml.
  • Schritt 24: Pushen Sie die Änderungen in Ihr Repository, um die Pipeline auszulösen.
  • Schritt 25: Nutzen Sie ignorelist.txt in Ihrem Bereitstellungsprozess. Als Teil des Bereitstellungsschritts, insbesondere beim Synchronisieren von Dateien mit rsync, ist es wichtig zu verwalten, welche Dateien in die Produktionsumgebung übertragen werden. Dazu verwenden wir eine spezielle Datei namens ignorelist.txt. Diese Datei enthält eine Liste aller Dateien und Verzeichnisse, die während des rsync-Prozesses ausgeschlossen werden sollen, um das Überschreiben oder die unnötige Übertragung von Dateien zu verhindern.

Praktische Beispiele für bitbucket-pipelines.yml-Konfigurationen finden Sie in diesem Repository: Beispiele für Bitbucket Pipelines. Insbesondere dieses Drupal-fokussierte Beispiel veranschaulicht die Ausführung von composer install in der Cloud für Drupal-Projekte. Diese Beispiele dienen als nützlicher Ausgangspunkt für die Anpassung Ihrer eigenen Pipelines.

7. Ihre Pipeline überwachen

Schritt 26: Überprüfen Sie nach jedem Push den Abschnitt „Pipelines“, um die Ausführung zu überwachen und Protokolle anzuzeigen.

Abschließende Gedanken

Zusammenfassend lässt sich sagen, dass Bitbucket Pipelines viel Erleichterung und Effizienz in die Webentwicklung bringt. Es vereinfacht Teamarbeit, Tests und Bereitstellungen und macht unsere Arbeit reibungsloser.

Denken Sie daran, dass sich die Welt von CI/CD ständig weiterentwickelt. Was ich behandelt habe, ist nur der Anfang. Je mehr Sie Bitbucket Pipelines nutzen, desto mehr neue Wege werden Sie finden, um es besser für Ihre Bedürfnisse zu gestalten. Erkunden Sie weiter und verbessern Sie Ihren Entwicklungsprozess. Viel Erfolg beim Debugging!