Zum Inhalt springen

Dokumentation / Odoo betreiben

Vorschau-Deployments

Automatisch Vorschau-Odoo-Umgebungen für GitHub-Pull-Requests erstellen.

Vorschau-Deployments erstellen eine temporäre, neutralisierte Kopie deines Odoo-Dienstes, sobald ein Pull Request in einem verbundenen GitHub-Repository geöffnet wird. So kann dein Team Addon-Änderungen auf einer echten Odoo-Instanz überprüfen, bevor sie gemergt werden.

So funktioniert es #

  1. Ein Pull Request wird in einem verbundenen Repository geöffnet
  2. calmo.cloud erstellt automatisch eine neutralisierte Kopie deines Dienstes
  3. Die Addons des PR-Branches werden auf die Kopie deployed
  4. Eine Vorschau-URL wird über GitHub Deployments zum Pull Request gepostet
  5. Wenn der PR geschlossen oder gemergt wird, wird die Vorschau automatisch gelöscht

Vorschauen werden auf dem Server für Kopien des Dienstes erstellt, sofern einer gesetzt ist (siehe Kopien erstellen) — so laufen sie auf einem Testserver statt neben deinem Produktionssystem.

Vorschau-Deployments einrichten #

1. Repository verbinden #

Stelle sicher, dass das Repository mit deinen Odoo-Addons mit deinem Dienst verbunden ist.

2. Vorschauen für das Repository aktivieren #

Öffne deinen Dienst, gehe zum Tab Repositories und klicke auf die Aktion Vorschauen aktivieren beim gewünschten Repository. Die Spalte "Vorschauen" zeigt ein Auge-Symbol an, wenn aktiviert.

3. Pull Request öffnen #

Erstelle einen Pull Request im verbundenen Repository. calmo.cloud erstellt automatisch ein Vorschau-Deployment und postet den Status zum PR über die GitHub App.

Dein Vorschau-Deployment ist jetzt eingerichtet. Jeder neue PR erhält seine eigene isolierte Odoo-Umgebung.

4. Tests bei jedem Pull Request laufen lassen (optional) #

Klicke im selben Tab Repositories beim Repository auf Tests aktivieren. Ab dann führt calmo.cloud die Odoo-Tests der Addons des Repositories auf jeder Vorschau aus — beim Erstellen der Vorschau und nach jedem Push — und meldet das Ergebnis an den Pull Request zurück.

Das Ergebnis erscheint als Check am Commit des Pull Requests, benannt nach deinem Dienst (zum Beispiel calmo.cloud tests: Produktion). Darf die GitHub App keine Checks anlegen, postet calmo.cloud das Ergebnis stattdessen als Kommentar im Pull Request. Gib deiner GitHub App die Berechtigung Checks: Read and write, um Checks zu erhalten — eine Branch-Protection-Regel kann sie dann vor dem Mergen verlangen.

Einen Lauf kannst du auch von Hand starten: Öffne den Tab Vorschau-Deployments und klicke bei einer Vorschau auf Tests ausführen.

Vorschauen verwalten #

Aktive Vorschauen anzeigen #

Öffne deinen Dienst und gehe zum Tab Vorschau-Deployments. Du siehst alle Vorschauen mit:

  • PR-Nummer (verlinkt zu GitHub)
  • Branch-Name
  • Status (Wird erstellt, Aktiv, Wird aktualisiert, Fehlgeschlagen, Gelöscht)
  • Tests (Ergebnis des letzten Testlaufs mit der Zahl der gelaufenen und fehlgeschlagenen Tests)
  • Vorschau-URL
  • Zugehöriger Dienst

Vorschau manuell erstellen #

Du kannst Vorschauen auch manuell im Tab Vorschau-Deployments erstellen, indem du auf Vorschau erstellen klickst. Wähle das Repository, gib die PR-Nummer und den Branch-Namen ein, und calmo.cloud erstellt die Vorschau.

Vorschau löschen #

Vorschauen werden automatisch gelöscht, wenn der PR geschlossen oder gemergt wird. Du kannst eine Vorschau auch manuell löschen, indem du auf die Aktion Löschen beim Vorschau-Deployment klickst.

Was bei der Vorschau-Erstellung passiert #

Wenn eine Vorschau erstellt wird, führt calmo.cloud folgende Schritte durch:

  1. Erstellt eine vollständige Kopie deines Dienstes (Datenbank + Dateien)
  2. Neutralisiert die Kopie, um Crons und externe Verbindungen zu deaktivieren
  3. Überschreibt den Branch für Addons aus dem PR-Repository mit dem PR-Branch
  4. Postet einen GitHub-Deployment-Status mit der Vorschau-URL
  5. Deployed die Addons des Repositories in der Version des PR-Branches und aktualisiert sie, sodass die Vorschau den Code des Pull Requests ausführt
  6. Führt die Tests aus, wenn sie für das Repository aktiviert sind

Was bei einem Testlauf passiert #

Ein Testlauf nimmt jedes Addon des PR-Repositories, das auf der Vorschau deployed ist, und startet dafür ein einziges odoo --test-enable: Auf der Vorschau installierte Addons werden aktualisiert, nicht installierte werden installiert, und die Standard-Tests genau dieser Module laufen. Die Vorschau ist für die Dauer des Laufs gestoppt und wird danach wieder gestartet — unabhängig vom Ergebnis.

Das Ergebnis im Pull Request zeigt, wie viele Tests gelaufen sind und welche fehlgeschlagen sind. Das vollständige Odoo-Log findest du im Tab Aktionen des Vorschau-Dienstes, auf den der Bericht verlinkt.

Die Tests laufen gegen die Datenbank der Vorschau, eine neutralisierte Kopie deines Dienstes. Bei großen Modulen kann ein Lauf eine Weile dauern; er ist auf 50 Minuten begrenzt.

Vorschau-Kopien werden immer neutralisiert. Crons und externe Verbindungen werden deaktiviert, um unbeabsichtigte Nebeneffekte zu verhindern.

Lebenszyklus #

PR-Ereignis Aktion
Geöffnet / Wiedereröffnet Erstellt ein neues Vorschau-Deployment und führt danach die Tests aus, wenn aktiviert
Neue Commits gepusht Synchronisiert und deployed geänderte Addons neu und führt danach die Tests aus, wenn aktiviert
Geschlossen / Gemergt Löscht die Vorschau und bereinigt Ressourcen

Wichtige Hinweise #

  • Jeder PR erhält seine eigene isolierte Vorschau — mehrere PRs können gleichzeitig aktive Vorschauen haben
  • Vorschauen werden immer neutralisiert, um Crons und externe Verbindungen zu deaktivieren
  • Vorschau-Dienste erscheinen als Typ Preview in deiner Dienstliste
  • Das Löschen einer Vorschau macht ein Soft-Delete des Dienstes — er erscheint nicht mehr in deinen aktiven Diensten, ist aber im Papierkorb-Filter zu finden
  • Vorschauen können nur für Dienste aktiviert werden, die selbst keine Kopien oder Vorschauen sind