Diese Version von GitHub Enterprise wurde eingestellt am 2021-09-23. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für eine bessere Leistung, verbesserte Sicherheit und neue Features nimm ein Upgrade auf die neueste Version von GitHub Enterprise vor. Wende Dich an den GitHub Enterprise-Support, um Hilfe beim Upgrade zu erhalten.

Workflow-Befehle für GitHub-Aktionen

Du kannst Workflow-Befehle verwenden, wenn Du Shell-Befehle in einem Workflow oder im Code einer Aktion ausführst.

GitHub Actions ist verfügbar mit GitHub Free, GitHub Pro, GitHub Free für Organisationen, GitHub Team, GitHub Enterprise Cloud, und GitHub AE. GitHub Actions ist nicht verfügbar für private Repositorys, die im Besitz von Konten mit älteren Pro-Repository-Plänen sind.

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.


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.

Informationen zu Workflow-Befehlen

Aktionen können mit dem Runner-Rechner kommunizieren, um Umgebungsvariablen zu setzen, Werte zur Verwendung in anderen Aktionen auszugeben, Debug-Meldungen zu den Ausgabeprotokollen zuzufügen und für andere Zwecke.

Workflow-Befehle verwenden den Befehl echo in einem bestimmten Format.

echo "::workflow-command parameter1={data},parameter2={data}::{command value}"

Hinweis: Bei Workflow-Befehl und Parameternamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Warnung: Wenn Du die Kommandozeile verwendest, lass bei Workflow-Befehlen die doppelten Anführungszeichen (") weg.

Workflow-Befehle verwenden, um auf Funktionen des Toolkits zuzugreifen

Das actions/toolkit enthält eine Reihe von Funktionen, die als Workflow-Befehle ausgeführt werden können. Verwende die Syntax ::, um die Workflow-Befehle in Deiner YAML-Datei auszuführen. Diese Befehle werden dann über stdout an den Runner gesandt. For example, instead of using code to set an output, as below:

core.setOutput('SELECTED_COLOR', 'green');

You can use the set-output command in your workflow to set the same value:

      - name: Set selected color
        run: echo '::set-output name=SELECTED_COLOR::green'
        id: random-color-generator
      - name: Get color
        run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}"

Die folgende Tabelle zeigt, welche Toolkit-Funktionen innerhalb eines Workflows verfügbar sind:

Toolkit-FunktionÄquivalenter Workflow-Befehl
core.addPath
add-path
core.debugdebug
core.errorerror
core.endGroupendgroup
core.exportVariable
set-env
core.getInputZugänglich durch Umgebungsvariable INPUT_{NAME}
core.getStateZugänglich durch Umgebungsvariable STATE_{NAME}
core.isDebugZugänglich durch Umgebungsvariable RUNNER_DEBUG
core.saveStatesave-state
core.setFailedWird als Abkürzung für ::error und exit 1 verwendet
core.setOutputset-output
core.setSecretadd-mask
core.startGroupGruppe
core.warningwarning file

Setting an environment variable

::set-env name={name}::{value}

Erstellt oder aktualisiert eine Umgebungsvariable für alle Aktionen, die als nächstes in einem Auftrag ausgeführt werden. Die Aktion, die die Umgebungsvariable erstellt oder aktualisiert, kann nicht auf den neuen Wert zugreifen; alle nachfolgenden Aktionen in einem Auftrag haben dagegen Zugriff auf den neuen Wert. Bei Umgebungsvariablen wird die Groß- und Kleinschreibung berücksichtigt. Sie können auch Satzzeichen enthalten.

Beispiel

echo "::set-env name=action_state::yellow"

Setting an output parameter

::set-output name={name}::{value}

Legt den Ausgabeparameter einer Aktion fest.

Optional kannst Du auch Ausgabeparameter in der Metadaten-Datei einer Aktion deklarieren. Weitere Informationen findest Du unter „Metadaten-Syntax für GitHub Actions“.

Beispiel

echo "::set-output name=action_fruit::strawberry"

Adding a system path

::add-path::{path}

Fügt für alle nachfolgenden Aktionen im aktuellen Auftrag vor der Systemvariablen PATH ein Verzeichnis hinzu. Die gerade ausgeführte Aktion kann nicht auf die neue Pfadvariable zugreifen.

Beispiel

echo "::add-path::/path/to/dir"

Setting a debug message

::debug::{message}

Gibt eine Debugging-Meldung im Protokoll aus. Sie müssen ein Geheimnis mit dem Namen ACTIONS_STEP_DEBUG und dem Wert true erstellen, um die durch diesen Befehl festgelegten Debugging-Meldungen im Protokoll zu sehen. For more information, see "Enabling debug logging."

Beispiel

echo "::debug::Set the Octocat variable"

Setting a warning message

::warning file={name},line={line},col={col}::{message}

Erstellt eine Warnmeldung und fügt die Mitteilung in das Protokoll ein. Optional können Sie einen Dateinamen (file), eine Zeilennummer (line) und eine Spaltennummer (col) angeben, bei der die Warnung angezeigt wurde.

Beispiel

echo "::warning file=app.js,line=1,col=5::Missing semicolon"

Setting an error message

::error file={name},line={line},col={col}::{message}

Erstellt eine Fehlermeldung und fügt die Mitteilung in das Protokoll ein. Optional können Sie einen Dateinamen (file), eine Zeilennummer (line) und eine Spaltennummer (col) angeben, bei der die Warnung angezeigt wurde.

Beispiel

echo "::error file=app.js,line=10,col=15::Something went wrong"

Grouping log lines

::group::{title}
::endgroup::

Creates an expandable group in the log. To create a group, use the group command and specify a title. Anything you print to the log between the group and endgroup commands is nested inside an expandable entry in the log.

Beispiel

echo "::group::My title"
echo "Inside group"
echo "::endgroup::"

Foldable group in workflow run log

Masking a value in log

::add-mask::{value}

Das Maskieren eines Werts verhindert, dass ein String oder eine Variable im Protokoll ausgegeben werden. Jedes maskierte Wort, getrennt durch Leerzeichen, wird durch das Zeichen * ersetzt. Sie können eine Umgebungsvariable oder einen String für den Wert (value) der Maske verwenden.

Beispiel für das Maskieren eines Strings

Wenn Sie "Mona The Octocat" im Protokoll ausgeben, sehen Sie "***".

echo "::add-mask::Mona The Octocat"

Beispiel für das Maskieren einer Umgebungsvariablen

Wenn Sie die Variable MY_NAME oder den Wert "Mona The Octocat" im Protokoll ausgeben, sehen Sie "***" statt "Mona The Octocat".

MY_NAME="Mona The Octocat"
echo "::add-mask::$MY_NAME"

Stopping and starting workflow commands

::stop-commands::{endtoken}

Stops processing any workflow commands. This special command allows you to log anything without accidentally running a workflow command. Sie können beispielsweise die Protokollierung anhalten, um ein vollständiges Skript mit Kommentaren auszugeben.

Beispiel zum Anhalten von Workflow-Befehlen

echo "::stop-commands::pause-logging"

To start workflow commands, pass the token that you used to stop workflow commands.

::{endtoken}::

Beispiel zum Starten von Workflow-Befehlen

echo "::pause-logging::"

Werte an die „Pre-“ (Vor-) und „Post-“ (Nach-)Aktionen senden

Mit dem Befehl save-state kannst Du Umgebungsvariablen für den Datenaustausch mit der pre:- oder post:-Aktionen Deines Workflows erzeugen. Zum Beispiel kannst Du mit der pre:-Aktion eine Datei erstellen, den Datei-Speicherort an die main:-Aktion übergeben und dann mit der post:-Aktion die Datei löschen. Alternativ kannst Du eine Datei mit der main:-Aktion erstellen, den Dateipfad an die post:-Aktion übergeben und ebenfalls mit der post:-Aktion die Datei löschen.

Wenn Du mehrere pre:- oder post:-Aktionen hast, kannst Du auf den gespeicherten Wert nur in der Aktion zugreifen, in der save-state verwendet wurde. Weitere Informationen zur post:-Aktion findest Du unter „Metadaten-Syntax für GitHub Actions“.

Der Befehl save-state kann nur innerhalb einer Aktion ausgeführt werden und ist für YAML Dateien nicht verfügbar. Der gespeicherte Wert wird als Umgebungswert mit dem Präfix STATE_ gespeichert.

Dieses Beispiel verwendet JavaScript, um den Befehl save-state auszuführen. Die resultierende Umgebungsvariable heißt STATE_processID und hat den Wert 12345:

console.log('::save-state name=processID::12345')

Die Variable STATE_processID ist dann exklusiv für das Bereinigungsskript verfügbar, das unter der main-Aktion ausgeführt wird. Dieses Beispiel läuft in main und verwendet JavaScript, um den Wert anzuzeigen, der der STATE_processID Umgebungsvariable zugewiesen wurde:

console.log("The running PID from the main action is: " +  process.env.STATE_processID);