Roll-outs und Releases verwalten

Wenn automatische Roll-outs aktiviert sind, wird bei jedem Push eines neuen Commits an den Live-Branch in Ihrem GitHub-Repository App Hosting automatisch eine neue Version Ihrer App eingeführt. 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 anderen Fällen, in denen Sie ein Roll-out erzwingen möchten.

Roll-outs ansehen

Die Firebase-Konsole bietet Zugriff auf detaillierte Informationen zu allen Roll-outs Ihrer App. Wählen Sie in App Hosting die Option Anzeigen für das Backend aus, dessen Roll-outs Sie sehen möchten. 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 das 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-Protokolle zugreifen, indem Sie auf die Build-ID klicken.
  • Die Änderung ist der GitHub-Commit oder eine andere Aktion, die das Roll-out ausgelöst hat.

Roll-out manuell auslösen

Wenn Sie ein Roll-out manuell über Ihre GitHub-Quelle auslösen möchten, ohne einen neuen Commit zu pushen, können Sie ein Roll-out über die Firebase-Konsole oder die Firebase-Befehlszeile erstellen. Das ist in folgenden Fällen nützlich:

  • Die Neugenerierung statischer Inhalte erzwingen
  • Ermöglicht es einem CI/CD-System, Rollouts auszulösen.
  • Produktions-Roll-outs auf bestimmte Datumsangaben oder Uhrzeiten beschränken.

So lösen Sie ein Roll-out in der Firebase-Konsole aus:

  1. Wählen Sie unter App Hosting die Option Anzeigen für das Backend aus, für das Sie ein Roll-out erstellen möchten.
  2. Wählen Sie in der Zusammenfassung des Backend-Dashboards Roll-out erstellen aus.
  3. Wählen Sie den zu implementierenden Branch aus.
  4. Wählen Sie den zu implementierenden Commit aus, entweder den neuesten Commit oder einen früheren Commit, der anhand seiner Commit-ID angegeben wird.
  5. Wählen Sie Erstellen aus. Status und Build-Nummer für die Einführung werden in der Tabelle „Einführungsverlauf“ angezeigt. Wenn der Einführungsprozess abgeschlossen ist, wird dieses Roll-out als aktuelles Roll-out angezeigt.

Wenn Sie ein Roll-out in der Firebase-Befehlszeile auslösen möchten, führen Sie den folgenden Befehl aus und wählen Sie auf Aufforderung den Branch für das Roll-out aus:

firebase apphosting:rollouts:create BACKEND_ID

Alternativ können Sie mit der Option --git-branch ein Roll-out für den neuesten Commit für einen bestimmten Branch starten:

firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME

Mit der Option --git-commit können Sie auch ein Roll-out mit einem bestimmten Commit erstellen:

firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID

Vorheriges Roll-out wiederherstellen

Bei App Hosting haben Sie zwei Möglichkeiten, ein vorheriges Roll-out wiederherzustellen:

  • Sofortige Rollbacks ohne Neuaufbau
  • Datenbank neu erstellen und Rollback auf vorherige Version durchführen

Sofortiges Rollback erstellen

Manchmal müssen Sie schnell zu einer älteren Version Ihrer App zurückkehren, z. B. wenn Sie einen kritischen Fehler in einem neu bereitgestellten Roll-out gefunden haben oder ein instabiler Build neue Roll-outs blockiert. 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 aus der Zeit, als es erstellt wurde.

So erstellen Sie einen sofortigen Rollback:

  1. Wählen Sie unter App Hosting die Option Ansicht für das Back-End aus, für das Sie ein Rollback erstellen möchten.
  2. Wählen Sie den Tab Roll-outs aus.
  3. Wählen Sie in der Tabelle Verlauf für das Backend das Dreipunkt-Menü für einen vorherigen Build aus.
  4. Wählen Sie Rollback zu diesem Build durchführen aus und bestätigen Sie.

Neu erstellen und Rollback ausführen

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 in Ihrer aktuellen Version beispielsweise ein API-Schlüsselwert im Secret Manager aktualisiert wurde, kann durch das Neuaufbauen sichergestellt werden, dass der neue Schlüssel nach dem Rollback in Ihrer App verwendet wird.

So erstellen Sie ein neues Back-End und führen ein Rollback durch:

  1. Wählen Sie unter App Hosting die Option Dashboard ansehen für das Backend aus, für das Sie ein Rollback erstellen möchten.\
  2. Wählen Sie den Tab Roll-outs aus.
  3. Wählen Sie Einführung erstellen aus.
  4. Klicken Sie im Dialogfeld Roll-out erstellen auf Vorheriger Commit und geben Sie dann die Commit-ID für die Version ein, die Sie neu erstellen und auf die Sie zurückwechseln möchten. Die Commit-ID ist Teil der „Änderungsdetails“ für jedes Roll-out,das in Ihrem Roll-out-Verlauf aufgeführt ist. Sie ist im Label in Klammern enthalten.
  5. Wählen Sie Erstellen aus, um mit dem Rollback zu beginnen.

Einstellungen für die Einführung ändern

Sie können den Live-Branch für Roll-outs ändern und automatische Roll-outs über die Steuerelemente in der Ansicht Einstellungen > Bereitstellung im Dashboard für ein Backend deaktivieren oder aktivieren.

  1. Wählen Sie unter App Hosting die Option Anzeigen für das Backend aus, für das Sie die Roll-out-Einstellungen aktualisieren möchten.
  2. Wählen Sie im Backend-Dashboard Einstellungen aus. In der Standardansicht werden Informationen zu Domains und benutzerdefinierten Domains angezeigt.
  3. 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 Anwendung und der Umgebung für das Backend (siehe In mehreren Umgebungen bereitstellen).