Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Suchen und Anpassen von Aktionen

Aktionen sind die Bausteine deiner Workflows. Ein Workflow kann Aktionen enthalten, die von der Community erstellt wurden. Du kannst aber auch eigene Aktionen direkt im Repository deiner Anwendung erstellen. In diesem Leitfaden erfährst du, wie du Aktionen ermitteln, verwenden und anpassen kannst.

Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

Übersicht

Die Aktionen, die du in deinem Workflow verwendest, können in den folgenden Instanzen definiert werden:

  • Im selben Repository wie dem deiner Workflowdatei
  • In einem internen Repository mit dem selben Unternehmenskonto, das zum Gewähren des Zugriffs auf Workflows konfiguriert ist
  • In einem beliebigen öffentlichen Repository
  • in einem veröffentlichten Docker-Container-Image auf Docker Hub

GitHub Marketplace ist eine zentrale Anlaufstelle für die Suche nach Aktionen, die von der GitHub-Community erstellt wurden. Auf der

Hinweis: GitHub Actions auf your GitHub Enterprise Server instance haben möglicherweise nur eingeschränkten Zugriff auf Aktionen auf GitHub.com oder im GitHub Marketplace. Weitere Informationen findest du unter Verwalten des Zugriffs auf Aktionen aus GitHub.com. Zudem kannst du deinen GitHub Enterprise-Websiteadministratorin kontaktieren.

Hinzufügen einer Aktion aus demselben Repository

Wenn eine Aktion im selben Repository definiert wird, in dem deine Workflowdatei diese Aktion verwendet, kannst du entweder mit der {owner}/{repo}@{ref}- oder der ./path/to/dir-Syntax in deiner Workflowdatei auf die Aktion verweisen.

Beispiel für die Struktur einer Repository-Datei:

|-- hello-world (repository)
|   |__ .github
|       └── workflows
|           └── my-first-workflow.yml
|       └── actions
|           |__ hello-world-action
|               └── action.yml

Beispiel einer Workflow-Datei:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - uses: actions/checkout@v3
      # This step references the directory that contains the action.
      - uses: ./.github/actions/hello-world-action

Die action.yml-Datei wird zum Bereitstellen von Metadaten für die Aktion verwendet. Unter Metadatensyntax für GitHub Actions erfahre mehr über den Inhalt dieser Datei.

Hinzufügen einer Aktion aus einem anderen Repository

Wenn eine Aktion in einem anderen Repository als deine Workflowdatei definiert ist, kannst du mit der {owner}/{repo}@{ref}-Syntax in deiner Workflowdatei auf diese Aktion verweisen.

Die Aktion muss in einem öffentlichen Repository oder einem internen Repository gespeichert sein, das so konfiguriert ist, dass der Zugriff auf Workflows möglich ist. Weitere Informationen findest du unter Freigeben von Aktionen und Workflows für dein Unternehmen.

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: actions/setup-node@v3

Einen Container auf Docker Hub referenzieren

Wenn eine Aktion in einem veröffentlichen Docker-Containerimage auf Docker Hub definiert wird, musst du mit der docker://{image}:{tag}-Syntax in deiner Workflowdatei auf diese Aktion verweisen. Zum Schutz deines Codes und deiner Daten wird dringend empfohlen, die Integrität des Docker-Container-Images von Docker Hub zu verifizieren, bevor du es in deinen Workflow einfügst.

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: docker://alpine:3.8

Unter Workflow zu „Docker-image.yml“ und Erstellen einer Docker-Containeraktion findest du einige Beispiele für Docker-Aktionen.

Anwenden der Releaseverwaltung auf deine benutzerdefinierten Aktionen

Die Ersteller*innen einer Communityaktion können Tags, Branches oder SHA-Werte zum Verwalten der Releases der Aktion verwenden. Wie bei allen Abhängigkeiten solltest du die Version der zu verwendenden Aktion abhängig davon angeben, ob du mit automatischen Updates für die Aktion einverstanden bist.

Du legst die Version der Aktion in deiner Workflowdatei fest. Überprüfe die Dokumentation der Aktion, um Informationen zur Releaseverwaltung zu erhalten und zu erfahren, welches Tag, welcher Branch oder welcher SHA-Wert verwendet werden soll.

Hinweis: Es wird empfohlen, beim Verwenden von Aktionen von Drittanbietern einen SHA-Wert zu nutzen. Weitere Informationen findest du unter Sicherheitshärtung für GitHub Actions.

Verwenden von Tags

Mit Tags kannst du entscheiden, wann zwischen Haupt- und Nebenversionen gewechselt werden soll. Diese sind jedoch kurzlebiger und können von den Verantwortlichen verschoben oder gelöscht werden. In diesem Beispiel wird gezeigt, wie du eine Aktion verwenden kannst, die als v1.0.1 getagged wurde:

steps:
  - uses: actions/javascript-action@v1.0.1

Verwenden von SHAs

Wenn du eine zuverlässigere Versionsverwaltung benötigst, solltest du den SHA-Wert verwenden, der der Version der Aktion zugeordnet ist. SHAs sind unveränderlich und daher zuverlässiger als Tags oder Branches. Wenn du diesen Ansatz verwendest, kannst du jedoch keine automatischen Updates für eine Aktion erhalten, einschließlich wichtiger Fehlerbehebungen und Sicherheitsupdates. Du musst den vollständigen SHA-Wert eines Commits verwenden, keinen abgekürzten Wert. In diesem Beispiel wird der SHA-Wert einer Aktion verwendet:

steps:
  - uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89

Verwenden von Branches

Wenn du einen Zielbranch für die Aktion angibst, wird immer die Version ausgeführt, die sich aktuell auf diesem Branch befindet. Durch diesen Ansatz können Probleme entstehen, wenn ein Update für den Branch Breaking Changes enthält. In diesem Beispiel wird ein Branch namens @main verwendet:

steps:
  - uses: actions/javascript-action@main

Weitere Informationen findest du unter Verwenden der Releaseverwaltung für Aktionen.

Verwenden von Eingaben und Ausgaben mit einer Aktion

Eine Aktion akzeptiert oder erfordert häufig Eingaben und generiert Ausgaben, die du verwenden kannst. Beispielsweise musst du bei einer Aktion einen Pfad zu einer Datei, den Namen einer Bezeichnung oder andere Daten angeben, die zur Aktionsverarbeitung verwendet werden.

Überprüfe die action.yml- oder action.yaml-Datei im Stammverzeichnis des Repositorys, um die Eingaben und Ausgaben einer Aktion anzuzeigen.

Bei action.yml definiert das Schlüsselwort inputs die erforderliche Eingabe namens file-path und enthält einen Standardwert, der verwendet wird, wenn sonst keiner angegeben wird. Das Schlüsselwort outputs definiert eine Ausgabe namens results-file, die angibt, wo die Ergebnisse zu finden sind.

name: "Example"
description: "Receives file and generates output"
inputs:
  file-path: # id of input
    description: "Path to test script"
    required: true
    default: "test-file.js"
outputs:
  results-file: # id of output
    description: "Path to results file"

Nächste Schritte

Weitere Informationen zu GitHub Actions findest du unter Wichtige Features von GitHub Actions.