Wenn Sie automatische Roll-outs aktiviert haben, wird bei jedem Push eines neuen Commits in den Live-Branch in Ihrem GitHub-Repository App Hosting automatisch eine neue Version Ihrer App bereitgestellt. Sie können den Roll-out-Status in der Firebase Konsole oder in der App Hosting GitHub-Prüfung prüfen.
Außerdem unterstützt App Hosting manuell ausgelöste Roll-outs für die CI/CD-Integration oder in allen anderen Fällen, in denen Sie einen Roll-out erzwingen möchten.
Roll-outs ansehen
In der Firebase Konsole finden Sie detaillierte Informationen zu allen Roll-outs Ihrer App.
Gehen Sie zu Hosting & Serverless> App Hosting, und wählen Sie für das Backend, dessen Roll-outs Sie sehen möchten, die Option Ansehen aus. Auf dem Tab Roll-outs für das Backend wird eine Tabelle mit dem Verlauf aller Roll-outs für dieses Backend angezeigt.
Jeder Roll-out-Eintrag enthält Links zum Cloud Build Job und zur Änderung oder zum Commit, die bzw. der den Roll-out ausgelöst hat, sowie grundlegende Informationen zum Autor, zum Erstellungsdatum und zum Status des Roll-outs.
- Der Cloud Build Job ist die Build-Umgebung, in der App Hosting den Build-Befehl Ihrer App ausführt. Sie können auf Cloud Build Logs zugreifen, indem Sie auf die Build-ID klicken.
- Die Änderung ist der GitHub-Commit oder eine andere Aktion, die den Roll-out ausgelöst hat.
Roll-out manuell auslösen
Wenn Sie einen Roll-out manuell aus Ihrer GitHub-Quelle auslösen möchten, ohne einen neuen Commit zu pushen, können Sie einen Roll-out über die Firebase Konsole oder die Firebase CLI erstellen. Das ist in folgenden Fällen nützlich:
- Erzwingen der Neugenerierung statischer Inhalte
- Ermöglichen, dass ein CI/CD-System Roll-outs auslöst
- Beschränken von Produktions-Roll-outs auf bestimmte Daten oder Uhrzeiten
So lösen Sie einen Roll-out in der Firebase Konsole aus:
- Gehen Sie in der Firebase Konsole zu Hosting & Serverless > App Hosting.
- Klicken Sie für das Backend, für das Sie einen Roll-out erstellen möchten, auf Ansehen.
- Wählen Sie in der Zusammenfassung des Backend-Dashboards die Option Roll-out erstellen aus.
- Wählen Sie den Branch aus, der bereitgestellt werden soll.
- Wählen Sie den Commit aus, der bereitgestellt werden soll. Das kann der letzte Commit oder ein früherer Commit sein, der durch seine Commit-ID angegeben wird.
- Wählen Sie Erstellen aus. In der Tabelle mit dem Roll-out-Verlauf werden der Status und eine Build-Nummer für den Roll-out angezeigt. Wenn der Roll-out-Prozess abgeschlossen ist, wird dieser Roll-out als aktueller Roll-out angezeigt.
Wenn Sie einen Roll-out in der Firebase CLI auslösen möchten, führen Sie den folgenden Befehl aus und wählen Sie bei Aufforderung den Branch für den Roll-out aus:
firebase apphosting:rollouts:create BACKEND_ID
Alternativ können Sie mit der Option --git-branch einen Roll-out für den letzten Commit eines bestimmten Branchs starten:
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
Sie können auch einen Roll-out mit einem bestimmten Commit erstellen. Verwenden Sie dazu die Option --git-commit:
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
Vorherigen Roll-out wiederherstellen
App Hosting bietet zwei Möglichkeiten, einen vorherigen Roll-out wiederherzustellen:
- Sofortiges Rollback ohne Neuerstellung
- Neuerstellung und Rollback zu einer vorherigen Version
Sofortiges Rollback erstellen
Manchmal müssen Sie schnell zu einer älteren Version Ihrer App zurückkehren, z. B. wenn Sie einen schwerwiegenden Fehler in einem neu bereitgestellten Roll-out gefunden haben oder wenn ein fehlerhafter Build neue Roll-outs verhindert. In solchen Fällen können Sie ein vorhandenes Container-Image Ihrer Wahl aus einem vorherigen Roll-out wiederherstellen. Dieses Image wird nicht neu erstellt, sondern verwendet den Code und die Umgebungskonfiguration, die bei der ersten Erstellung verwendet wurden.
So erstellen Sie ein sofortiges Rollback:
- Gehen Sie in der Firebase Konsole zu Hosting & Serverless > App Hosting.
- Klicken Sie für das Backend, für das Sie ein Rollback erstellen möchten, auf Ansehen.
- Wählen Sie den Tab Roll-outs aus.
- Wählen Sie in der Tabelle Verlauf für das Backend das Dreipunkt-Menü für einen vorherigen Build aus.
- Wählen Sie Rollback zu diesem Build aus und bestätigen Sie die Auswahl.
Neuerstellung und Rollback
Wenn Sie zu einer älteren Version Ihrer App zurückkehren, aber die aktuelle Konfiguration beibehalten möchten, können Sie die App im Rahmen des Rollback-Prozesses neu erstellen. Wenn beispielsweise in der neuesten Version ein API-Schlüsselwert in Secret Manageraktualisiert wurde, kann durch die Neuerstellung sichergestellt werden, dass der neue Schlüssel nach dem Rollback in Ihrer App verwendet wird.
So führen Sie eine Neuerstellung und ein Rollback durch:
- Gehen Sie in der Firebase Konsole zu Hosting & Serverless > App Hosting.
- Klicken Sie für das Backend, für das Sie ein Rollback erstellen möchten, auf Dashboard ansehen.
- Wählen Sie den Tab Roll-outs aus.
- Wählen Sie Roll-out erstellen aus.
- Wählen Sie im Dialogfeld Roll-out erstellen die Option Früherer Commit aus und geben Sie dann die Commit-ID für die Version ein, zu der Sie ein Rollback durchführen möchten. Die Commit-ID ist Teil der „Änderungsdetails“ für jeden Roll-out,der in Ihrem Roll-out-Verlauf aufgeführt ist. Sie befindet sich in Klammern im Label.
- Wählen Sie Erstellen aus, um das Rollback zu starten.
Roll-out-Einstellungen ändern
Sie können den Live-Branch für Roll-outs ändern und automatische Roll-outs deaktivieren oder aktivieren. Verwenden Sie dazu die Steuerelemente in der Ansicht Einstellungen > Bereitstellung im Dashboard für ein Backend.
- Gehen Sie in der Firebase Konsole zu Hosting & Serverless > App Hosting.
- Klicken Sie für das Backend, für das Sie die Roll-out-Einstellungen aktualisieren möchten, auf Ansehen.
- Wählen Sie im Backend-Dashboard Einstellungen aus. In der Standardansicht werden Informationen zu Domains und benutzerdefinierten Domains angezeigt.
- Wählen Sie die Ansicht Bereitstellung aus. In dieser Ansicht können Sie den Live-Branch für Roll-outs ändern und automatische Roll-outs deaktivieren oder aktivieren. Außerdem gibt es Optionen zum Festlegen des Stammverzeichnisses der App und der Umgebung für das Backend (siehe Bereitstellung in mehreren Umgebungen).
Automatische Roll-outs verwalten
Standardmäßig geht App Hosting von einer Liste aller erforderlichen Dateien aus. Das bedeutet, dass jeder neue Commit in Ihrem Repository einen neuen Build und Roll-out auslöst. Um Zeit zu sparen und unnötige Bereitstellungen zu vermeiden, können Sie App Hosting jedoch so konfigurieren, dass Builds basierend auf den in einem Commit geänderten Dateipfaden übersprungen werden.
Sie können dies unter Einstellungen > Roll-outs > Roll-out-Trigger konfigurieren. Hier können Sie das Feld Erforderliche Pfade leer lassen, wenn jeder neue Commit in Ihrem Repository einen neuen Build und Roll-out auslösen soll. Alternativ können Sie genau angeben, welche Verzeichnisse oder Dateien immer einen Roll-out auslösen sollen. Wenn Sie Verzeichnisse angeben, müssen Sie alle Pfade hinzufügen, bei denen Änderungen einen Roll-out auslösen sollen.
Verzeichnisse oder Dateien, die Sie zu Ignorierte Pfade hinzufügen, lösen nie einen automatischen Roll-out aus. Wenn ein Unterverzeichnis sowohl in der Liste der erforderlichen als auch in der Liste der ignorierten Pfade enthalten ist, wird kein automatischer Roll-out ausgelöst. Wenn Sie nur die Liste der ignorierten Pfade ausfüllen, wird in App Hosting automatisch "*" für die erforderlichen Pfade eingefügt.
Wenn Sie einen Commit pushen, bei dem keine der geänderten Dateien mit Ihren erforderlichen Pfaden übereinstimmt
oder alle Änderungen explizit durch Ihre ignorierten Pfade ausgeschlossen werden,
App Hosting bestätigt trotzdem den Empfang des GitHub-Ereignisses. Es wird jedoch
die Build- und Roll-out-Status als SKIPPED markieren und es wird kein automatischer Roll-out
ausgelöst.