# Grundlegendes zu GitHub Actions

Lernen Sie die Grundlagen der Kernkonzepte und der wesentlichen Terminologie in GitHub Actions.

## Übersicht

GitHub Actions ist eine Plattform für Continuous Integration und Continuous Delivery (CI/CD), mit der du deine Build-, Test- und Bereitstellungspipeline automatisieren kannst. Sie können Workflows erstellen, die jede Pullanforderung an Ihr Repository erstellen und testen oder zusammengeführte Pullanforderungen in der Produktion bereitstellen.

GitHub Actions geht über DevOps hinaus und ermöglicht es Ihnen, Workflows auszuführen, wenn andere Ereignisse in Ihrem Repository auftreten. So kannst du z. B. einen Workflow für das automatische Hinzufügen geeigneter Bezeichnungen ausführen, sobald in deinem Repository ein neues Issue erstellt wird.

GitHub stellt virtuelle Linux-, Windows- und macOS-Computer bereit, um Ihre Workflows auszuführen, oder Sie können Ihre eigenen selbst gehosteten Läufer in Ihrem eigenen Rechenzentrum oder ihrer Cloudinfrastruktur hosten.

## Die Komponenten von GitHub Actions

Sie können einen GitHub Actions**Workflow** so konfigurieren, dass er ausgelöst wird, wenn ein **Ereignis** in Ihrem Repository auftritt, z. B. eine Pullanforderung, die geöffnet wird oder ein Problem erstellt wird. Der Workflow enthält einen oder mehrere **Aufträge**, die nacheinander oder gleichzeitig ausgeführt werden können. Jeder Auftrag wird innerhalb eines eigenen **Runners** der VM oder in einem Container ausgeführt und verfügt über einen oder mehrere **Schritte**. Diese führen entweder ein von Ihnen definiertes Skript oder eine **Aktion** aus. Dabei handelt es sich um eine wiederverwendbare Erweiterung zur Vereinfachung des Workflows.

![Diagramm eines Ereignisses, das Runner 1 veranlasst, Auftrag 1 auszuführen, was wiederum Runner 2 veranlasst, Auftrag 2 auszuführen. Jeder der Aufträge ist in mehrere Schritte unterteilt.](/assets/images/help/actions/overview-actions-simple.png)

### Workflows

Ein **Workflow** ist ein konfigurierbarer automatisierter Prozess zur Ausführung eines oder mehrerer Aufträge. Workflows werden durch eine im Repository eingecheckte YAML-Datei definiert. Die Auslösung ihrer Ausführung erfolgt durch ein Ereignis in deinem Repository, manuell oder nach einem definierten Zeitplan.

Workflows werden im `.github/workflows`-Verzeichnis in einem Repository definiert. Ein Repository kann mehrere Workflows enthalten, die jeweils unterschiedliche Aufgaben ausführen können, wie:

* Erstellen und Testen von Pull Requests
* Bereitstellen deiner Anwendung bei jeder Erstellung eines Release
* Hinzufügen einer Bezeichnung, wenn ein neues Issue geöffnet wird

Sie können innerhalb eines anderen Workflows auf einen Workflow verweisen. Weitere Informationen finden Sie unter [Wiederverwenden von Workflows](/de/actions/how-tos/reuse-automations/reuse-workflows).

Weitere Informationen finden Sie unter [Schreiben von Workflows](/de/actions/how-tos/write-workflows).

### Ereignisse

Bei einem **Ereignis** handelt es sich um eine bestimmte Aktivität in einem Repository, die die Ausführung eines **Workflows** auslöst. Die Aktivität kann beispielsweise von GitHub stammen, wenn ein Pull-Anforderung erstellt, ein Issue geöffnet oder ein Commit per Push in ein Repository übertragen wird. Die Ausführung eines Workflows kann auch nach einem [Zeitplan](/de/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule), durch [Posten in einer REST-API](/de/rest/repos/repos#create-a-repository-dispatch-event) oder manuell ausgelöst werden.

Eine vollständige Liste der Ereignisse zum Auslösen von Workflows findest du unter [Ereignisse, die Workflows auslösen](/de/actions/reference/workflows-and-actions/events-that-trigger-workflows).

### Aufträge

Ein **Auftrag** umfasst mehrere **Schritte** in einem Workflow, die in demselben **Runner** ausgeführt werden. Jeder Schritt besteht entweder aus einem Shellskript oder aus einer **Aktion**, die ausgeführt werden. Die Schritte werden nacheinander ausgeführt und sind voneinander abhängig. Da alle Schritte im gleichen Runner ausgeführt werden, kannst du Daten eines Schritts für andere Schritte freigeben. So kann z. B. in einem Schritt eine Anwendung erstellt und im nächsten Schritt die erstellte Anwendung getestet werden.

Die Schritte werden standardmäßig in der Reihenfolge ausgeführt, sie können aber auch ausgewählte Schritte gleichzeitig ausführen, wenn Ihr Workflow von der parallelen Ausführung profitiert, z. B. beim Starten eines lang ausgeführten Diensts, während spätere Schritte fortgesetzt werden. Weitere Informationen finden Sie unter [Workflowsyntax für GitHub Actions](/de/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsbackground).

Ein Auftrag kann so konfiguriert werden, dass er Abhängigkeiten zu anderen Aufträgen hat. Standardmäßig verfügen Aufträge nicht über Abhängigkeiten und werden parallel ausgeführt. Wenn ein Auftrag von einem anderen Auftrag abhängt, wartet er auf den Abschluss des abhängigen Auftrags, bevor er ausgeführt wird.

Du kannst auch eine **Matrix** verwenden, um denselben Auftrag mehrmals auszuführen, jeweils mit einer anderen Kombination von Variablen wie Betriebssystemen oder Sprachversionen.

Zum Beispiel könnten Sie mehrere Build-Aufträge für verschiedene Architekturen konfigurieren, die keine Abhängigkeiten aufweisen, sowie einen Paketerstellungsauftrag, der von diesen Builds abhängig ist. Die Buildaufträge werden parallel ausgeführt. Nach erfolgreichem Abschluss wird der Paketerstellungsauftrag ausgeführt.

Weitere Informationen finden Sie unter [Auswählen, was in dem Workflow passiert](/de/actions/how-tos/write-workflows/choose-what-workflows-do).

### Aktionen

Eine **Aktion** ist ein vordefinierter, wiederverwendbarer Satz von Aufträgen oder Code, der bestimmte Aufgaben innerhalb eines **Workflows** ausführt. Dadurch wird die Menge an wiederholtem Code reduziert, den du in deine Workflowdateien schreibst. Aktionen können unter anderem Aufgaben wie zum Beispiel folgende ausführen:

* Abrufen Ihres Git-Repositorys aus GitHub
* Einrichten der richtigen Toolkette für deine Buildumgebung
* Einrichten der Authentifizierung bei deinem Cloudanbieter

Sie können eigene Aktionen schreiben oder Aktionen finden, die Sie in Ihren Workflows verwenden können im GitHub Marketplace.

Weitere Informationen zu Aktionen findest du unter [Wiederverwenden von Automatisierungen](/de/actions/how-tos/reuse-automations).

### Runner

Ein **Runner** ist ein Server, auf dem die Workflows ausgeführt werden, wenn sie ausgelöst werden. Jeder Runner kann jeweils nur einen **Auftrag** ausführen.

GitHub stellt Ubuntu Linux, Microsoft Windows und macOS-Läufer bereit, um Ihre **Workflows** auszuführen. Jede Workflowausführung erfolgt in einer neu bereitgestellten VM.

GitHub bietet auch größerer Runners an, die in größeren Konfigurationen verfügbar sind. Weitere Informationen finden Sie unter [Verwenden größerer Runner](/de/actions/how-tos/manage-runners/larger-runners).

Wenn Sie ein anderes Betriebssystem benötigen oder eine bestimmte Hardwarekonfiguration wünschen, können Sie Ihre eigenen Runner hosten.

Weitere Informationen zu selbst-gehosteten Runnern
finden Sie unter [Verwalten von selbstgehosteten Runnern](/de/actions/how-tos/manage-runners/self-hosted-runners).

## Nächste Schritte

GitHub Actions kann Ihnen dabei helfen, nahezu jeden Aspekt Ihrer Anwendungsentwicklungsprozesse zu automatisieren. Willst du loslegen? Hier sind einige hilfreiche Ressourcen zum Ausführen der nächsten Schritte mit GitHub Actions:

* Informationen zum Erstellen eines GitHub Actions Workflows finden Sie unter [Verwenden von Workflowvorlagen](/de/actions/how-tos/write-workflows/use-workflow-templates).
* Informationen zu CI-Workflows (Continuous Integration) sind unter [Deinen Code bauen und testen](/de/actions/tutorials/build-and-test-code) zu finden.
* Informationen zum Erstellen und Veröffentlichen von Paketen findest du unter [Pakete veröffentlichen](/de/actions/tutorials/publish-packages).
* Informationen zum Bereitstellen von Projekten findest du unter [Bereitstellen auf Drittanbieterplattformen](/de/actions/how-tos/deploy/deploy-to-third-party-platforms).
* Informationen zur Automatisierung von Aufgaben und Prozessen auf GitHub finden Sie unter [Verwalten deiner Arbeit mit GitHub Actions](/de/actions/tutorials/manage-your-work).
* Beispiele, die komplexere Funktionen von GitHub Actions veranschaulichen, finden Sie unter [Auswählen, was in dem Workflow passiert](/de/actions/how-tos/write-workflows/choose-what-workflows-do). In diesen detaillierten Beispielen wird erläutert, wie Sie Ihren Code auf einem Läufer testen, auf die GitHub CLI zugreifen und erweiterte Features wie Parallelitäts- und Testmatrizen verwenden.
* Um Ihre Fähigkeiten bei der Automatisierung von Workflows zu zertifizieren und die Entwicklung mit GitHub Actions zu beschleunigen, erwerben Sie ein GitHub Actions-Zertifikat mit GitHub Certifications. Weitere Informationen finden Sie unter [Informationen zu GitHub Certifications](/de/get-started/showcase-your-expertise-with-github-certifications/about-github-certifications).