Skip to main content

Grundlegende Features von GitHub Actions

GitHub Actions sind dafür konzipiert, dass du stabile und dynamische Automatisierungen erstellen kannst. In diesem Leitfaden wird gezeigt, wie du GitHub Actions-Workflows erstellen kannst, die Umgebungsvariablen, benutzerdefinierte Skripts und vieles mehr enthalten.

Übersicht

Mit GitHub Actions kannst du deine Workflows so anpassen, dass sie die individuellen Anforderungen deiner Anwendung und deines Teams erfüllen. In diesem Leitfaden werden einige der wichtigsten Anpassungstechniken erklärt, z. B. das Verwenden von Variablen, das Ausführen von Skripts und das Freigeben von Daten und Artefakten zwischen Aufträgen.

Verwenden von Variablen in deinen Workflows

GitHub Actions enthält Standardumgebungsvariablen für jede Workflowausführung. Wenn du benutzerdefinierte Umgebungsvariablen verwenden musst, kannst du diese in deiner YAML-Workflowdatei festlegen. In diesem Beispiel wird veranschaulicht, wie du die benutzerdefinierten Variablen POSTGRES_HOST und POSTGRES_PORT erstellen kannst. Diese Variablen sind dann für das node client.js-Skript verfügbar.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Connect to PostgreSQL
        run: node client.js
        env:
          POSTGRES_HOST: postgres
          POSTGRES_PORT: 5432

Weitere Informationen findest du unter Variablen.

Hinzufügen von Skripts zu deinem Workflow

Sie können einen GitHub Actions-Workflow verwenden, um Skripts und Shell-Befehle auszuführen, die dann auf dem zugewiesenen Runner ausgeführt werden. In diesem Beispiel wird veranschaulicht, wie eine Aktion das run-Schlüsselwort verwenden kann, um npm install -g bats auf dem Runner auszuführen.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - run: npm install -g bats

Um einen Workflow zum Ausführen eines in Ihrem Repository gespeicherten Skripts zu verwenden, müssen Sie zuerst das Repository für den Runner auschecken. Nachdem Sie dies getan haben, können Sie das run Schlüsselwort verwenden, um das Skript auf dem Runner auszuführen. Im folgenden Beispiel werden zwei Skripts ausgeführt, die jeweils in einem separaten Auftragsschritt ausgeführt werden. Der Speicherort der Skripts auf dem Runner wird durch Festlegen eines Standardarbeitsverzeichnisses für Skriptausführungen angegeben. Weitere Informationen findest du unter Festlegen von Standardwerten für Aufträge.

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Run a script
        run: ./my-script.sh
      - name: Run another script
        run: ./my-other-script.sh

Alle Skripte, die ein Workflow-Job ausführen soll, müssen durchführbar sein. Sie können dies entweder innerhalb des Workflows tun, indem Sie das Skript als Argument an den Interpreter übergeben, der das Skript ausführt (z. B. run: bash script.sh), oder indem Sie die Datei selbst ausführbar machen. Sie können der Datei die Ausführungserlaubnis erteilen, indem Sie den Befehl git update-index --chmod=+x PATH/TO/YOUR/script.sh lokal verwenden, die Datei dann committen und in das Repository verschieben. Alternativ können Sie für Workflows, die auf Linux- und Mac-Runnern ausgeführt werden, einen Befehl hinzufügen, um der Datei die Ausführungsberechtigung im Workflow-Auftrag zu erteilen, bevor Sie das Skript ausführen:

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Make the script files executable
        run: chmod +x my-script.sh my-other-script.sh
      - name: Run the scripts
        run: |
          ./my-script.sh
          ./my-other-script.sh

Weitere Informationen zum Schlüsselwort run finden Sie unter Workflowsyntax für GitHub Actions.

Freigeben von Daten zwischen Aufträgen

Wenn dein Auftrag Dateien generiert, die du für einen anderen Auftrag im selben Workflow freigeben möchtest, oder wenn du die Dateien zur späteren Verwendung speichern möchtest, kannst du sie in GitHub als Artefakte speichern. Artefakte sind die Dateien, die erstellt werden, wenn du deinen Code erstellst und testest. Artefakte können beispielsweise Binär- oder Paketdateien, Testergebnisse, Screenshots oder Protokolldateien sein. Artefakte sind der Workflowausführung zugeordnet, in der sie erstellt wurden, und sie können in einem anderen Auftrag verwendet werden. Alle Aktionen und Workflows, die innerhalb einer Ausführung aufgerufen werden, verfügen über Schreibzugriff für die Artefakte dieser Ausführung.

Du kannst beispielsweise eine Datei erstellen und sie dann als Artefakt hochladen.

jobs:
  example-job:
    name: Save output
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        run: |
          expr 1 + 1 > output.log
      - name: Upload output file
        uses: actions/upload-artifact@v4
        with:
          name: output-log-file
          path: output.log

Du kannst die actions/download-artifact-Aktion verwenden, wenn du ein Artefakt aus einer separaten Workflowausführung herunterladen möchtest. Beispielsweise kannst du das Artefakt mit dem Namen output-log-file herunterladen.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Download a single artifact
        uses: actions/download-artifact@v4
        with:
          name: output-log-file

Wenn du ein Artefakt aus derselben Workflowausführung herunterladen möchtest, sollte der Downloadauftrag den needs: upload-job-name angeben, damit er erst gestartet wird, wenn der Uploadauftrag abgeschlossen ist.

Weitere Informationen zu Artefakten findest du unter Speichern von Workflowdaten als Artefakte.

Nächste Schritte

Weitere Informationen zu GitHub Actions findest du unter Informationen zu Workflows.