Note: GitHub Actions was available for GitHub Enterprise Server 2.22 as a limited beta. The beta has ended. GitHub Actions is now generally available in GitHub Enterprise Server 3.0 or later. For more information, see the GitHub Enterprise Server 3.0 release notes.
- For more information about upgrading to GitHub Enterprise Server 3.0 or later, see "Upgrading GitHub Enterprise Server."
- For more information about configuring GitHub Actions after you upgrade, see the documentation for GitHub Enterprise Server 3.0.
Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.
About contexts
Warning: When creating workflows and actions, you should always consider whether your code might execute untrusted input from possible attackers. Certain contexts should be treated as untrusted input, as an attacker could insert their own malicious content. For more information, see "Understanding the risk of script injections."
Kontexte sind eine Möglichkeit, auf Informationen zu Workflow-Läufen, Runner-Umgebungen, Jobs und Schritten zuzugreifen. Kontexte nutzen die Syntax für Ausdrücke. For more information, see "Expressions."
${{ <context> }}
Kontextname | Typ | Beschreibung |
---|---|---|
github | Objekt | Informationen zum Workflow-Lauf. Weitere Informationen findest Du unter „github -Kontext“. |
env | Objekt | Enthält Umgebungsvariablen, die in einem Workflow, Job oder Schritt festgelegt sind. Weitere Informationen findest Du unter env -Kontext. |
Auftrag | Objekt | Informationen zum derzeit ausgeführten Job. Weitere Informationen findest Du unter „job -Kontext“. |
steps | Objekt | Informationen zu den Schritten, die bei diesem Job ausgeführt wurden. Weitere Informationen findest Du unter „steps -Kontext“. |
runner | Objekt | Informationen zu dem Runner, der den aktuellen Job ausführt. Weitere Informationen findest Du unter runner -Kontext. |
secrets | Objekt | Ermöglicht den Zugriff auf Geheimnisse. Weitere Informationen über Geheimnisse findest Du unter „Verschlüsselte Geheimnisse erstellen und verwenden“. |
strategy | Objekt | Ermöglicht den Zugriff auf die konfigurierten Strategieparameter und Informationen zum aktuellen Job. Zu Strategieparametern gehören fail-fast , job-index , job-total und max-parallel . |
matrix | Objekt | Ermöglicht den Zugriff auf die Matrixparameter, die Du für den aktuellen Job konfiguriert hast. Wenn Du beispielsweise einen Matrix-Build mit den Versionen von os und node konfigurierst, umfasst das Kontextobjekt matrix die Versionen von os und node des aktuellen Auftrags. |
needs | Objekt | Ermöglicht den Zugriff auf die Ausgaben aller Jobs, die als Abhängigkeit des aktuellen Jobs definiert sind. Weitere Informationen findest Du unter needs -Kontext. |
Als Teil eines Ausdrucks kannst Du mit einer der beiden folgenden Syntaxarten auf Kontextinformationen zugreifen.
- Index-Syntax:
github['sha']
- Syntax zur Dereferenzierung von Eigenschaften:
github.sha
Bei der Eigenschaftsdereferenzierungs-Syntax muss der Eigenschaftsname
- mit
a-Z
oder_
beginnen, - mit
a-Z
,0-9
,-
oder_
weitergehen.
Determining when to use contexts
GitHub Actions includes a collection of variables called contexts and a similar collection of variables called default environment variables. These variables are intended for use at different points in the workflow:
- Default environment variables: These variables exist only on the runner that is executing your job. For more information, see "Default environment variables."
- Contexts: You can use most contexts at any point in your workflow, including when default environment variables would be unavailable. For example, you can use contexts with expressions to perform initial processing before the job is routed to a runner for execution; this allows you to use a context with the conditional
if
keyword to determine whether a step should run. Once the job is running, you can also retrieve context variables from the runner that is executing the job, such asrunner.os
. For details of where you can use various contexts within a workflow, see "Context availability."
The following example demonstrates how these different types of environment variables can be used together in a job:
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 this example, the if
statement checks the github.ref
context to determine the current branch name; if the name is refs/heads/main
, then the subsequent steps are executed. The if
check is processed by GitHub Actions, and the job is only sent to the runner if the result is true
. Once the job is sent to the runner, the step is executed and refers to the $GITHUB_REF
environment variable from the runner.
github
-Kontext
Der github
-Kontext enthält Informationen zum Workflow-Lauf und zu dem Ereignis, das den Lauf ausgelöst hat. Du kannst die meisten github
-Kontextdaten in Umgebungsvariablen lesen. Weitere Informationen über Umgebungsvariablen findest Du unter „Umgebungsvariablen verwenden“.
Warnung: Beachte bei der Verwendung des gesamten github
Kontexts, dass er vertrauliche Informationen wie github.token
enthält. GitHub maskiert Geheimnisse, wenn sie auf die Konsole ausgegeben werden, aber Du solltest beim Exportieren oder Drucken des Kontexts vorsichtig sein.
Warning: When creating workflows and actions, you should always consider whether your code might execute untrusted input from possible attackers. Certain contexts should be treated as untrusted input, as an attacker could insert their own malicious content. For more information, see "Understanding the risk of script injections."
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
github | Objekt | Der Top-Level-Kontext, der bei jedem Job oder Schritt im Workflow verfügbar ist. |
github.action | string | Der Name der aktuell laufenden Aktion. GitHub removes special characters or uses the name __run when the current step runs a script. If you use the same action more than once in the same job, the name will include a suffix with the sequence number with underscore before it. For example, the first script you run will have the name __run , and the second script will be named __run_2 . Ebenso wird die zweite Anrufung von actions/checkout actionscheckout2 sein. |
github.action_path | string | The path where your action is located. You can use this path to easily access files located in the same repository as your action. This attribute is only supported in composite actions. |
github.actor | string | Der Anmeldename des Benutzers, der den Workflow-Lauf initiiert hat |
github.base_ref | string | Das base_ref oder der Ziel-Branch des Pull Requests in einem Workflow-Lauf. This property is only available when the event that triggers a workflow run is either pull_request or pull_request_target . |
github.event | Objekt | Die vollständige Nutzlast des Ereignis-Webhooks. Weitere Informationen findest Du unter „Ereignisse, die Workflows auslösen“. You can access individual properties of the event using this context. |
github.event_name | string | Der Name des Ereignisses, das den Workflow-Lauf ausgelöst hat. |
github.event_path | string | Der Pfad zur vollständigen Event-Webhook-Nutzlast auf dem Runner. |
github.head_ref | string | Das head_ref oder der Quell-Branch des Pull Requests in einem Workflow-Lauf. This property is only available when the event that triggers a workflow run is either pull_request or pull_request_target . |
github.job | string | Die job_id des aktuellen Jobs. |
github.ref | string | Das Branch- oder Tag-Ref, das den Workflow-Lauf ausgelöst hat. For branches this is the format refs/heads/<branch_name> , and for tags it is refs/tags/<tag_name> . |
github.repository | string | Der Inhaber- und Repository-Name, z. B. Codertocat/Hello-World . |
github.repository_owner | string | Der Name des Repository-Besitzers. Beispielsweise Codertocat . |
github.run_id | string | Eine eindeutige Nummer für jede Ausführung innerhalb eines Repository. Diese Nummer ändert sich nicht, wenn Du den Workflowablauf erneut ausführst. |
github.run_number | string | Eine eindeutige Nummer für jede Ausführung eines bestimmten Workflows in einem Repository. Diese Nummer beginnt bei 1 für die erste Ausführung des Workflows und erhöht sich mit jeder neuen Ausführung. Diese Nummer ändert sich nicht, wenn Du den Workflowablauf erneut ausführst. |
github.run_attempt | string | A unique number for each attempt of a particular workflow run in a repository. This number begins at 1 for the workflow run's first attempt, and increments with each re-run. |
github.server_url | string | Returns the URL of the GitHub server. For example: https://github.com . |
github.sha | string | Die Commit-SHA, die den Workflow-Lauf ausgelöst hat. |
github.token | string | Ein Token zum Authentifizieren im Namen der in Deinem Repository installierten GitHub-App. Funktionell entspricht dies dem Geheimnis GITHUB_TOKEN . Weitere Informationen findest Du unter „Authentifizierung mit dem GITHUB_TOKEN". |
github.workflow | string | Der Name des Workflows. Wenn in der Workflow-Datei kein name (Name) festgelegt ist, entspricht der Wert dieser Eigenschaft dem vollständigen Pfad der Workflow-Datei im Repository. |
github.workspace | string | Das Standardarbeitsverzeichnis für Schritte und der Standardspeicherort Deines Repositorys bei Verwendung der Aktion checkout . |
env
-Kontext
Der env
-Kontext enthält Umgebungsvariablen, die in einem Workflow, Job oder Schritt gesetzt wurden. Weitere Informationen über das Setzen von Umgebungsvariablen in Deinem Workflow findest Du unter „Workflow-Syntax für GitHub Actions“.
Mit der Syntax für den env
-Kontext kannst Du den Wert einer Umgebungsvariable in Deiner Workflow-Datei verwenden. You can use the env
context in the value of any key in a step except for the id
and uses
keys. Weitere Informationen zur Syntax für Schritte findest Du unter „Workflow-Syntax für GitHub Actions“.
Wenn Du den Wert einer Umgebungsvariable innerhalb eines Runners verwenden willst, dann verwende die normale Methode des Runner-Betriebssystems zum Lesen von Umgebungsvariablen.
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
env | Objekt | Dieser Kontext ändert sich bei jedem Schritt in einem Auftrag. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. |
env.<env_name> | string | Der Wert einer bestimmten Umgebungsvariable. |
job
-Kontext
Der job
-Kontext enthält Informationen zum gerade ausgeführten Auftrag.
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
Auftrag | Objekt | Dieser Kontext ändert sich bei jedem Auftrag in einem Workflow-Lauf. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. |
job.container | Objekt | Informationen zum Container des Auftrags. Weitere Informationen zu Containern findest Du unter „Workflow-Syntax für GitHub Actions“. |
job.container.id | string | Die ID des Containers |
job.container.network | string | Die ID des Container-Netzwerks. Der Runner erstellt das Netzwerk, das von allen Containern in einem Auftrag genutzt wird. |
job.services | Objekt | Die für einen Auftrag erstellten Dienstcontainer. Weitere Informationen zu Dienstcontainern findest Du unter „Workflow-Syntax für GitHub Actions“. |
job.services.<service id>.id | string | Die ID des Dienstcontainers |
job.services.<service id>.network | string | Die ID des Dienstcontainer-Netzwerks. Der Runner erstellt das Netzwerk, das von allen Containern in einem Auftrag genutzt wird. |
job.services.<service id>.ports | Objekt | Die offengelegten Ports des Service-Containers |
job.status | string | Der aktuelle Status des Auftrags. Mögliche Werte sind success (erfolgreich), failure (fehlgeschlagen) oder cancelled (abgebrochen). |
steps
-Kontext
Der steps
-Kontext enthält Informationen zu den Schritten im aktuellen Job, die bereits ausgeführt wurden.
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
steps | Objekt | Dieser Kontext ändert sich bei jedem Schritt in einem Auftrag. Du kannst bei jedem Schritt in einem Auftrag auf diesen Kontext zugreifen. |
steps.<step id>.outputs | Objekt | Der Satz an Ausgaben, die für diesen Schritt definiert wurden. Weitere Informationen findest Du unter „Metadaten-Syntax für GitHub Actions“. |
steps.<step id>.conclusion | string | Das Ergebnis eines abgeschlossenen Schritts nachdemcontinue-on-error (bei Fehler weitermachen) angewendet wurde. Mögliche Werte sind success (erfolgreich), failure (fehlgeschlagen), cancelled (abgebrochen) oder skipped (übersprungen). Wenn ein Schritt mit continue-on-error (bei Fehler weitermachen) fehlschlägt, ist outcome (Ergebnis) failure zwar (Fehler), aber conclusion (Schlussfolgerung) ist am Ende success (Erfolg). |
steps.<step id>.outcome | string | Das Ergebnis eines abgeschlossenen Schritts bevor continue-on-error (bei Fehler weitermachen) angewendet wird. Mögliche Werte sind success (erfolgreich), failure (fehlgeschlagen), cancelled (abgebrochen) oder skipped (übersprungen). Wenn ein Schritt mit continue-on-error (bei Fehler weitermachen) fehlschlägt, ist outcome (Ergebnis) failure zwar (Fehler), aber conclusion (Schlussfolgerung) ist am Ende success (Erfolg). |
steps.<step id>.outputs.<output name> | string | Der Wert einer bestimmten Ausgabe |
runner
-Kontext
Der runner
-Kontext enthält Informationen über den Runner, der den aktuellen Job ausführt.
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
runner.name | string | The name of the runner executing the job. |
runner.os | string | Das Betriebssystem des Runners, der den Job ausführt. Mögliche Werte sind Linux , Windows oder macOS . |
runner.temp | string | The path to a temporary directory on the runner. This directory is emptied at the beginning and end of each job. Note that files will not be removed if the runner's user account does not have permission to delete them. |
runner.tool_cache | string | The path to the directory containing preinstalled tools for GitHub-hosted runners. For more information, see "Specifications for GitHub-hosted runners". |
needs
-Kontext
Der needs
-Kontext enthält Ausgaben von allen Jobs, die als Abhängigkeit des aktuellen Jobs definiert sind. Weitere Informationen zur Definition von Jobabhängigkeiten findest Du unter „Workflow-Syntax für GitHub Actions“.
Name der Eigenschaft | Typ | Beschreibung |
---|---|---|
needs.<job id> | Objekt | Ein einzelner Job, von dem der aktuelle Job abhängt. |
needs.<job id>.outputs | Objekt | Die Menge aller Ausgaben eines Jobs, von dem der aktuelle Job abhängt. |
needs.<job id>.outputs.<output name> | string | Der Wert einer bestimmten Ausgabe für einen Job, von dem der aktuelle Job abhängt. |
needs.<job id>.result | string | Das Ergebnis eines Jobs, von dem der aktuelle Job abhängt. Mögliche Werte sind success (erfolgreich), failure (fehlgeschlagen), cancelled (abgebrochen) oder skipped (übersprungen). |
Beispiel für die Ausgabe von Kontextinformationen in die Protokolldatei
Mit dem folgenden Beispiel einer Workflow-Datei kannst Du die Informationen einsehen, auf die in den einzelnen Kontexten zugegriffen werden kann.
Warnung: Beachte bei der Verwendung des gesamten github
Kontexts, dass er vertrauliche Informationen wie github.token
enthält. GitHub maskiert Geheimnisse, wenn sie auf die Konsole ausgegeben werden, aber Du solltest beim Exportieren oder Drucken des Kontexts vorsichtig sein.
.github/workflows/main.yml
on: push
jobs:
one:
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Dump job context
env:
JOB_CONTEXT: ${{ toJSON(job) }}
run: echo "$JOB_CONTEXT"
- name: Dump steps context
env:
STEPS_CONTEXT: ${{ toJSON(steps) }}
run: echo "$STEPS_CONTEXT"
- name: Dump runner context
env:
RUNNER_CONTEXT: ${{ toJSON(runner) }}
run: echo "$RUNNER_CONTEXT"
- name: Dump strategy context
env:
STRATEGY_CONTEXT: ${{ toJSON(strategy) }}
run: echo "$STRATEGY_CONTEXT"
- name: Dump matrix context
env:
MATRIX_CONTEXT: ${{ toJSON(matrix) }}
run: echo "$MATRIX_CONTEXT"
Context availability
Different contexts are available throughout a workflow run. For example, the secrets
context may only be used at certain places within a job.
In addition, some functions may only be used in certain places. For example, the hashFiles
function is not available everywhere.
The following table indicates where each context and special function can be used within a workflow. Unless listed below, a function can be used anywhere.
Pfad | Context | Special functions |
---|---|---|
concurrency | github | |
env | github, secrets | |
jobs.<job_id>.concurrency | github, needs, strategy, matrix | |
jobs.<job_id>.container | github, needs, strategy, matrix | |
jobs.<job_id>.container.credentials | github, needs, strategy, matrix, env, secrets | |
jobs.<job_id>.container.env.<env_id> | github, needs, strategy, matrix, job, runner, env, secrets | |
jobs.<job_id>.continue-on-error | github, needs, strategy, matrix | |
jobs.<job_id>.defaults.run | github, needs, strategy, matrix, env | |
jobs.<job_id>.env | github, needs, strategy, matrix, secrets | |
jobs.<job_id>.environment | github, needs, strategy, matrix | |
jobs.<job_id>.environment.url | github, needs, strategy, matrix, job, runner, env, steps | |
jobs.<job_id>.if | github, needs | always, cancelled, success, failure |
jobs.<job_id>.name | github, needs, strategy, matrix | |
jobs.<job_id>.outputs.<output_id> | github, needs, strategy, matrix, job, runner, env, secrets, steps | |
jobs.<job_id>.runs-on | github, needs, strategy, matrix | |
jobs.<job_id>.services | github, needs, strategy, matrix | |
jobs.<job_id>.services.<service_id>.credentials | github, needs, strategy, matrix, env, secrets | |
jobs.<job_id>.services.<service_id>.env.<env_id> | github, needs, strategy, matrix, job, runner, env, secrets | |
jobs.<job_id>.steps.continue-on-error | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.env | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.if | github, needs, strategy, matrix, job, runner, env, steps | always, cancelled, success, failure, hashFiles |
jobs.<job_id>.steps.name | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.run | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.timeout-minutes | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.with | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.steps.working-directory | github, needs, strategy, matrix, job, runner, env, secrets, steps | hashFiles |
jobs.<job_id>.strategy | github, needs | |
jobs.<job_id>.timeout-minutes | github, needs, strategy, matrix |