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 #
- Ein Pull Request wird in einem verbundenen Repository geöffnet
- calmo.cloud erstellt automatisch eine neutralisierte Kopie deines Dienstes
- Die Addons des PR-Branches werden auf die Kopie deployed
- Eine Vorschau-URL wird über GitHub Deployments zum Pull Request gepostet
- 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:
- Erstellt eine vollständige Kopie deines Dienstes (Datenbank + Dateien)
- Neutralisiert die Kopie, um Crons und externe Verbindungen zu deaktivieren
- Überschreibt den Branch für Addons aus dem PR-Repository mit dem PR-Branch
- Postet einen GitHub-Deployment-Status mit der Vorschau-URL
- Deployed die Addons des Repositories in der Version des PR-Branches und aktualisiert sie, sodass die Vorschau den Code des Pull Requests ausführt
- 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