Informationen zu wiederverwendbaren Workflows und zusammengesetzten Aktionen
Wiederverwendbare Workflows und zusammengesetzte Aktionen sind zwei Möglichkeiten, um das Duplizieren von Inhalten von Workflows zu vermeiden.
Wiederverwendbaren Workflows ermöglichen es Ihnen, einen gesamten Workflow wiederverwenden, einschließlich aller zugehörigen Jobs und Schritte. Das ist besonders nützlich, wenn Sie über einen vollständigen CI/CD-Prozess verfügen, den Sie in mehreren Repositorys verwenden möchten. Wiederverwendbare Workflows können zentral an einem Standort verwaltet, aber in vielen Repositorys in Ihrer Organisation verwendet werden.
Zusammengesetzte Aktionen ermöglichen es Ihnen, mehrere Schritte in einer einzigen Aktion zu kombinieren. Sie können dieses Bündel an Schritten dann als einzelner Schritt in einem Workflow ausführen. Das ist nützlich, wenn Sie eine Abfolge an Schritten haben, die in mehreren Workflows verwendet werden. Zusammengesetzte Aktionen ermöglichen es Ihnen, lange YAML-Workflowdateien in viel kleinere Dateien umzugestalten und das Kopieren und Einfügen zwischen Workflowdateien zu vermeiden.
Wiederverwendbare Workflows und zusammengesetzte Aktionen lösen ähnliche Probleme, weisen jedoch einige wichtige Unterschiede auf. Meistens können Sie beide Lösungen verwenden. Manchmal müssen Sie jedoch die eine oder die andere verwenden, wie weiter unten in diesem Artikel beschrieben.
Ausführliche Informationen zum Erstellen und Verwenden wiederverwendbarer Workflows und zusammengesetzter Aktionen finden Sie unter „Wiederverwenden von Workflows“ und „Erstellen einer zusammengesetzten Aktion.“
Vergleich von wiederverwendbaren Workflows und zusammengesetzten Aktionen
- Workflow-Jobs – Zusammengesetzte Aktionen enthalten eine Reihe an 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 |