Skip to main content

Vermeiden von Duplikaten

Sie können wiederverwendbare Workflows oder zusammengesetzte Aktionen verwenden, um das Duplizieren von Inhalten von Workflows zu vermeiden.

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 WorkflowsZusammengesetzte Aktionen
Eine YAML-Datei, ähnelt allen Standardworkflowdateien sehrEine Aktion, die ein Bündel an Workflowschritten enthält
Jeder wiederverwendbare Workflow ist eine einzelne Datei im .github/workflows-Verzeichnis eines RepositorysJede 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-DateiAufgerufen durch Verweisen auf ein Repository oder Verzeichnis, in dem die Aktion definiert ist
Direkt innerhalb eines Jobs aufgerufen, nicht aus einem SchrittAusgeführt als Schritt innerhalb eines Jobs
Kann mehrere Jobs enthaltenEnthält keine Jobs
Jeder Schritt wird in Echtzeit protokolliert.Protokolliert als ein Schritt, auch dann, wenn mehrere Schritte enthalten sind
Kann maximal vier Workflowebenen verbindenKann geschachtelt werden, damit bis zu 10 zusammengesetzte Aktionen in einem Workflow enthalten sind
Kann Geheimnisse verwendenKann keine Geheimnisse verwenden
Kann if:-Bedingungen verwendenKann keine if:-Bedingungen verwenden