Skip to main content

Kontexte

Erfahren Sie mehr über Kontexte in GitHub Actions.

Informationen zu Kontexten

Kontexte sind eine Möglichkeit, auf Informationen zu Workflowausführungen, Variablen, Runnerumgebungen, Aufträge und Schritten zuzugreifen. Jeder Kontext ist ein Objekt, das Eigenschaften enthält, die Zeichenfolgen oder andere Objekte sein können.

Kontexte, Objekte und Eigenschaften variieren bei verschiedenen Workflowausführungsbedingungen erheblich. Beispielsweise wird der matrix Kontext nur für Aufträge in einer Matrix aufgefüllt.

Mithilfe der Syntax für Ausdrücke können Sie auf Kontexte zugreifen. Weitere Informationen finden Sie unter Auswerten von Ausdrücken in Workflows und Aktionen.

${{ <context> }}

Warnung

Beim Erstellen von Workflows und Aktionen sollten Sie immer berücksichtigen, ob Ihr Code möglicherweise Code aus nicht vertrauenswürdigen Eingaben potenzieller Angreifer ausführt. Bestimmte Kontexte sollten als nicht vertrauenswürdige Eingaben behandelt werden, da ein Angreifer seine eigenen schädlichen Inhalte einfügen könnte. Weitere Informationen finden Sie unter Referenz zur sicheren Verwendung.

Bestimmung des Einsatzzeitpunkts von Kontexten

GitHub Actions enthält eine Auflistung von Variablen, die als Kontexte bezeichnet werden, und eine ähnliche Auflistung von Variablen, die als Standardvariablen bezeichnet werden. Diese Variablen sind für den Einsatz an verschiedenen Stellen im Workflow vorgesehen.

  • Standardumgebungsvariablen: Diese Umgebungsvariablen sind nur auf dem Runner vorhanden, der deinen Auftrag ausführt. Weitere Informationen finden Sie unter Referenz für Variablen.
  • Kontexte: Du kannst die meisten Kontexte an einem beliebigen Punkt in deinem Workflow verwenden, einschließlich wenn Standardvariablen nicht verfügbar sind. Du kannst beispielsweise Kontexte mit Ausdrücken verwenden, um die anfängliche Verarbeitung auszuführen, bevor der Auftrag zur Ausführung an einen Runner weitergeleitet wird; dadurch kannst du einen Kontext mit dem bedingten if-Schlüsselwort verwenden, um festzustellen, ob ein Schritt ausgeführt werden soll. Sobald der Auftrag ausgeführt wird, kannst du auch Kontextvariablen aus dem Runner abrufen, der den Auftrag ausführt, so wie runner.os. Ausführliche Informationen dazu, wo du verschiedene Kontexte innerhalb eines Workflows verwenden kannst, findest du unter Kontextreferenz.

Im folgenden Beispiel wird veranschaulicht, wie diese verschiedenen Variablentypen in einem Auftrag zusammen verwendet werden können:

YAML
name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

In diesem Beispiel überprüft die if-Anweisung den Kontext, um den github.ref aktuellen Zweignamen zu ermitteln; wenn der Name refs/heads/main lautet, werden die nachfolgenden Schritte ausgeführt. Die if Prüfung wird von GitHub Actions bearbeitet, und der Auftrag wird nur an den Runner gesendet, wenn true das Ergebnis ist. Sobald der Auftrag an den Runner gesendet wird, wird der Schritt ausgeführt und verweist auf die $GITHUB_REF-Variable des Runners.