Informationen zu wiederverwendbaren Workflows
Damit du nicht zwischen Workflows kopieren musst, kannst du Workflows wiederverwendbar machen. Du und alle anderen, die Zugriff auf den wiederverwendbaren Workflow haben, können diesen dann in einem anderen Workflow aufrufen.
Durch das Wiederverwenden von Workflows wird Duplizierung vermieden. Dies vereinfacht die Wartung von Workflows und ermöglicht ein schnelleres Erstellen neuer Workflows, da auf der Arbeit anderer aufgebaut werden kann, genau wie bei Aktionen. Die Wiederverwendung von Workflows fördert auch die Nutzung bewährter Methoden, da sie dich dabei unterstützt, gut strukturierte Workflows zu verwenden, die bereits getestet wurden und sich als effektiv erwiesen haben. Deine Organisation kann eine Bibliothek mit wiederverwendbaren Workflows erstellen, die zentral verwaltet werden kann.
Das folgende Diagramm zeigt eine laufende Workflowausführung, die einen wiederverwendbaren Workflow verwendet.
- Nachdem jeder der drei Buildaufträge auf der linken Seite des Diagramms erfolgreich abgeschlossen wurde, wird ein abhängiger Auftrag namens „Deploy“ ausgeführt.
- Im „Deploy“-Auftrag wird ein wiederverwendbarer Workflow aufgerufen, der drei Aufträge enthält: „Staging“, „Review“ und „Production“.
- Der Bereitstellungsauftrag „Production“ wird erst ausgeführt, wenn der Auftrag „Staging“ erfolgreich abgeschlossen wurde.
- Wenn ein Auftrag auf eine Umgebung abzielt, zeigt die Workflowausführung eine Statusleiste an, die die Anzahl der Schritte im Auftrag anzeigt. Im folgenden Diagramm enthält der Auftrag „Production“ acht Schritte, wobei Schritt 6 derzeit verarbeitet wird.
- Die Nutzung eines wiederverwendbaren Workflows für das Ausführen von Bereitstellungsaufträgen ermöglicht dir das Ausführen dieser Aufträge für jeden Build, ohne dass du Code in Workflows duplizieren musst.
Ein Workflow, in dem ein anderer Workflow verwendet wird, wird als aufrufender Workflow bezeichnet. Der wiederverwendbare Workflow ist ein aufgerufener Workflow. In einem aufrufenden Workflow können mehrere aufgerufene Workflows verwendet werden. Auf jeden aufgerufenen Workflow wird in nur jeweils einer Zeile verwiesen. Dies führt dazu, dass die Datei mit dem aufrufenden Workflow möglicherweise nur ein paar wenige Zeilen YAML-Code enthält, beim Ausführen jedoch viele Tasks ausführt. Wenn du einen Workflow wiederverwendest, wird der gesamte aufgerufene Workflow verwendet, als wäre er Teil des aufrufenden Workflows.
Wenn du einen Workflow aus einem anderen Repository wiederverwendest, werden alle Aktionen im aufgerufenen Workflow ausgeführt, als wären sie Teil des aufrufenden Workflows. Wenn im aufgerufenen Workflow actions/checkout
verwendet wird, überprüft die Aktion beispielsweise den Inhalt des Repositorys, in dem der aufrufende Workflow gehostet wird, nicht den des Repositorys des aufgerufenen Workflows.
Du kannst die wiederverwendeten Workflows, auf die in deinen GitHub Actions-Workflows verwiesen wird, im Abhängigkeitsdiagramm des Repositorys, in dem deine Workflows sich befinden, als Abhängigkeiten anzeigen. Weitere Informationen findest du unter Informationen zum Abhängigkeitsdiagramm.
Wiederverwendbare Workflows im Vergleich zu zusammengesetzten Aktionen
Wiederverwendbare Workflows und zusammengesetzte Aktionen helfen dir dabei, das Duplizieren von Workflowinhalten zu vermeiden. Während wiederverwendbare Workflows es Ihnen ermöglichen, einen gesamten Workflow mit mehreren Jobs und Schritten wiederzuverwenden, kombinieren zusammengesetzte Aktionen mehrere Schritte, die Sie dann innerhalb eines Job-Schritts ausführen können, genau wie jede andere Aktion.
Im Folgenden werden einige Aspekte der einzelnen Lösungen verglichen:
- Workflowaufträge – Zusammengesetzte Aktionen enthalten eine Reihe von Schritten, die als Einzelschritt im Aufruferworkflow ausgeführt werden. Im Gegensatz zu wiederverwendbaren Workflows können sie keine Jobs enthalten.
- Protokollierung – Wenn eine zusammengesetzte Aktion ausgeführt wird, zeigt das Protokoll nur den Schritt im Aufruferworkflow an, der die zusammengesetzte Aktion ausgeführt hat, nicht die einzelnen Schritte innerhalb der zusammengesetzten Aktion. Bei wiederverwendbaren Workflows wird jeder Job und jeder Schritt separat protokolliert.
- Angabe von Runnern – Wiederverwendbare Workflows enthalten einen oder mehrere Jobs. Wie bei allen Workflow-Jobs geben die Jobs in einem wiederverwendbaren Workflow den Computertyp an, auf dem der Job ausgeführt wird. Wenn die Schritte daher auf einem Computertyp ausgeführt werden müssen, der sich möglicherweise von dem Computer unterscheidet, der für den Aufrufer-Workflow-Job ausgewählt wurde, sollten Sie einen wiederverwendbaren Workflow verwenden, nicht eine zusammengesetzte Aktion.
- Übergeben der Ausgabe an Schritte – Eine zusammengesetzte Aktion wird als Schritt innerhalb eines Workflow-Jobs ausgeführt, und Sie können mehrere Schritte vor oder nach dem Schritt ausführen, der die zusammengesetzte Aktion ausführt. Wiederverwendbare Workflows werden direkt innerhalb eines Auftrags aufgerufen und nicht innerhalb eines Auftragsschritts. Sie können einem Auftrag nach dem Aufrufen eines wiederverwendbaren Workflows keine Schritte hinzufügen, das heißt, sie können
GITHUB_ENV
nicht verwenden, um Werte an nachfolgende Job-Schritte im Aufruferworkflow weiterzugeben.
Wichtige Unterschiede zwischen wiederverwendbaren Workflows und zusammengesetzten Aktionen
Wiederverwendbare Workflows | Zusammengesetzte Aktionen |
---|---|
Eine YAML-Datei, ähnelt allen Standardworkflowdateien sehr | Eine Aktion, die ein Bündel an Workflowschritten enthält |
Jeder wiederverwendbare Workflow ist eine einzelne Datei im .github/workflows -Verzeichnis eines Repositorys | Jede zusammengesetzte Aktion ist ein separates Repository oder ein Verzeichnis, das eine action.yml -Datei und optional andere Dateien enthält |
Aufgerufen durch Verweisen auf eine bestimmte YAML-Datei | Aufgerufen durch Verweisen auf ein Repository oder Verzeichnis, in dem die Aktion definiert ist |
Direkt innerhalb eines Jobs aufgerufen, nicht aus einem Schritt | Ausgeführt als Schritt innerhalb eines Jobs |
Kann mehrere Jobs enthalten | Enthält keine Jobs |
Jeder Schritt wird in Echtzeit protokolliert. | Protokolliert als ein Schritt, auch dann, wenn mehrere Schritte enthalten sind |
Kann maximal vier Workflowebenen verbinden | Kann geschachtelt werden, damit bis zu 10 zusammengesetzte Aktionen in einem Workflow enthalten sind |
Kann Geheimnisse verwenden | Kann keine Geheimnisse verwenden |
Wiederverwendbare Workflows und Workflowvorlagen
Mit Workflowvorlagen können alle Personen in deiner Organisation, die über die entsprechenden Berechtigungen verfügen, Workflows schneller und leichter erstellen. Wenn Personen einen neuen Workflow erstellen, können sie eine Workflowvorlage auswählen und sich so das Schreiben des Workflows ganz oder teilweise sparen. In einer Workflowvorlage kann auch auf wiederverwendbare Workflows verwiesen werden, damit Personen mühelos von der Wiederverwendung zentral verwalteter Workflowcodes profitieren.
Wenn du beim Verweisen auf den wiederverwendbaren Workflow einen Commit-SHA verwendest, kannst du sicherstellen, dass Personen, die diesen Workflow wiederverwenden, immer denselben YAML-Code nutzen. Wenn du über ein Tag oder einen Branch auf einen wiederverwendbaren Workflow verweist, musst du jedoch sicherstellen, dass diese Version des Workflows vertrauenswürdig ist. Weitere Informationen finden Sie unter Referenz zur sicheren Verwendung.
GitHub bietet Workflowvorlagen für verschiedene Sprachen und Tools. Wenn du Workflows im Repository einrichtest, analysiert GitHub den Code im Repository und empfiehlt Workflows basierend auf der Sprache und dem Framework im Repository. Wenn du z. B. Node.js verwendest, schlägt GitHub eine Workflowvorlagendatei vor, die die Node.js-Pakete installiert und die Tests ausführt. Sie können nach relevanten Workflowvorlagen suchen und dabei Filter anwenden.
GitHub bietet einsatzbereite Workflowvorlagen für die folgenden Kategorien auf hoher Ebene:
- Bereitstellung (CD) . Weitere Informationen finden Sie unter Continuous Deployment.
- Sicherheit. Weitere Informationen findest du unter Konfigurieren des erweiterten Setups für das Codescanning.
- Continuous Integration (CI) Weitere Informationen finden Sie unter Continuous Integration.
- Automatisierung. Automatisierungs-Workflowvorlagen bieten Lösungen für die Automatisierung von Workflows, wie z. B. die Triage von Pull Requests und das Anwenden einer Bezeichnung basierend auf den Pfaden, die im Pull Request geändert werden, oder das Begrüßen von Benutzern, die zum ersten Mal Mitwirkende des Repositorys sind.
Sie können diese Workflows als Ausgangspunkt nutzen, um eigene benutzerdefinierte Workflows zu erstellen, oder sie unverändert übernehmen. Die vollständige Liste der Workflowvorlagen können Sie im Repository der Aktions-/Starter-Workflows durchsuchen.
Weitere Informationen finden Sie unter Erstellen von Workflowvorlagen für die Organisation.
Nächste Schritte
Informationen zum Wiederverwenden deiner Workflows findest du unter Wiederverwenden von Workflows.
Informationen zu den Feinheiten bei der Wiederverwendung von Workflows findest du unter Referenz zu wiederverwendbaren Workflows.