GitHub Actions: Hinzufügen von Umgebungsvariablen

GitBeginner
Jetzt üben

Einführung

In GitHub Actions sind Umgebungsvariablen Schlüssel-Wert-Paare, die den Schritten (Steps) in einem Workflow zur Verfügung stehen. Sie können Umgebungsvariablen für einen gesamten Workflow, einen bestimmten Job oder einen bestimmten Schritt definieren.

In diesem Lab lernen Sie, wie Sie:

  1. Eine GitHub Actions Workflow-Datei erstellen.
  2. Eine Umgebungsvariable auf Workflow-Ebene definieren.
  3. Auf die Umgebungsvariable in einem Schritt zugreifen und diese verwenden.
  4. Die Variable aktualisieren und den Workflow erneut auslösen.

Dieses Lab baut auf dem Repository auf, das Sie in den vorherigen Labs erstellt haben. Sie werden das github-actions-demo-Repository klonen und einen Workflow erstellen, der Umgebungsvariablen verwendet.

Fügen Sie den env-Abschnitt mit der auf 'Hello' gesetzten Variablen GREETING hinzu

In diesem Schritt klonen Sie das Repository und erstellen eine neue GitHub Actions Workflow-Datei mit einer globalen Umgebungsvariable.

  1. Klicken Sie auf Ihrer GitHub Repository-Seite für github-actions-demo auf die grüne Schaltfläche Code.
  2. Stellen Sie sicher, dass der Reiter HTTPS ausgewählt ist, und kopieren Sie die URL. Sie sollte etwa so aussehen: https://github.com/your-username/github-actions-demo.git.
  3. Öffnen Sie das Terminal in der LabEx-Umgebung. Der Standardpfad ist ~/project.
  4. Verwenden Sie den Befehl git clone, um das Repository herunterzuladen. Ersetzen Sie your-username durch Ihren tatsächlichen GitHub-Benutzernamen.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
  1. Navigieren Sie in das geklonte Repository:
cd ~/project/github-actions-demo
  1. Erstellen Sie eine neue Datei namens env-demo.yml im Verzeichnis .github/workflows:
touch .github/workflows/env-demo.yml
  1. Öffnen Sie .github/workflows/env-demo.yml im WebIDE und fügen Sie den folgenden Inhalt hinzu. Dies definiert den Namen des Workflows, das auslösende Ereignis (push) und den Abschnitt env mit einer Variablen namens GREETING.
name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"
  • name: Der Name Ihres Workflows.
  • on: Gibt an, dass dieser Workflow ausgeführt wird, wenn ein push-Ereignis eintritt.
  • env: Definiert eine Zuordnung von Umgebungsvariablen, die allen Jobs und Schritten im Workflow zur Verfügung stehen. Hier setzen wir GREETING auf den String 'Hello'.

Fügen Sie einen Schritt hinzu, um die Variable mit run echo "${{ env.GREETING }}, World!" auszugeben

In diesem Schritt definieren Sie einen Job und einen Schritt, um die von Ihnen erstellte Umgebungsvariable zu verwenden. Sie greifen in der Workflow-Datei auf Umgebungsvariablen mit der Syntax ${{ env.VARIABLE_NAME }} zu.

Öffnen Sie .github/workflows/env-demo.yml im WebIDE und fügen Sie den folgenden Inhalt am Ende der Datei hinzu:

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"

Ihre vollständige Datei sollte wie folgt aussehen:

name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"
  • jobs: Definiert die Jobs, die der Workflow ausführt.
  • print-greeting: Die ID des Jobs.
  • runs-on: Konfiguriert den Maschinentyp (Runner), auf dem der Job ausgeführt wird.
  • steps: Fasst alle Schritte zusammen, die im Job ausgeführt werden.
  • run: Führt einen Befehl in der Shell des Runners aus. Wir verwenden echo, um den Wert von GREETING gefolgt von , World! auszugeben.

Aktualisierten Workflow mit env committen und pushen

In diesem Schritt committen Sie die neue Workflow-Datei und pushen sie auf GitHub. Das Pushen dieser Datei registriert den Workflow bei GitHub Actions und löst den ersten Durchlauf aus.

  1. Stellen Sie sicher, dass Sie sich im Repository-Verzeichnis befinden:
cd ~/project/github-actions-demo
  1. Stagen Sie die Workflow-Datei:
git add .github/workflows/env-demo.yml
  1. Committen Sie die Änderungen:
git commit -m "Add workflow with environment variable"
  1. Pushen Sie die Änderungen auf das Remote-Repository auf GitHub:
git push

Hinweis zur Authentifizierung:
Wenn Sie git push ausführen, fordert Sie das WebIDE automatisch zur Authentifizierung auf. Befolgen Sie diese detaillierten Schritte:

  1. Es erscheint ein Popup mit der Meldung: "The extension 'GitHub' wants to sign in using GitHub." Klicken Sie auf Allow.
  2. Es erscheint eine neue Benachrichtigung. Klicken Sie auf "Copy&Continue to GitHub" und anschließend im nächsten Dialog auf "Open".
  3. Melden Sie sich in dem sich öffnenden Browserfenster bei Ihrem GitHub-Konto an und geben Sie den kopierten Autorisierungscode ein. Nach Bestätigung der Autorisierung schließt sich die Seite automatisch.
  4. Warten Sie einige Sekunden, und Sie werden sehen, wie das Terminal den Push-Vorgang erfolgreich abschließt.

Datenschutzhinweis: Das WebIDE wird für Authentifizierungszwecke vollen Zugriff auf Ihr GitHub-Konto anfordern. Sie müssen sich keine Sorgen um Datenschutzbedenken machen – die LabEx VM wird sofort zerstört, nachdem Sie das aktuelle Lab abgeschlossen haben, und Ihre Anmeldeinformationen sowie Autorisierungsinformationen werden nicht gespeichert.

Workflow durch Pushen einer Änderung auslösen

Der Workflow ist so konfiguriert, dass er bei push-Ereignissen ausgeführt wird. Obwohl der vorherige Push den Workflow bereits ausgelöst hat, sehen wir uns an, wie einfach es ist, die Umgebungsvariable zu aktualisieren und ihn erneut auszulösen.

  1. Öffnen Sie .github/workflows/env-demo.yml im WebIDE.
  2. Ändern Sie den Wert von GREETING von "Hello" auf "Hi".
env:
  GREETING: "Hi"
  1. Committen und pushen Sie diese Änderung:
git add .github/workflows/env-demo.yml
git commit -m "Update greeting variable"
git push

Hinweis zur Authentifizierung:
Wenn Sie sich vor Kurzem nicht authentifiziert haben, fordert Sie das WebIDE automatisch zur Authentifizierung auf, wenn Sie git push ausführen. Befolgen Sie dieselben Authentifizierungsschritte wie im vorherigen Schritt beschrieben.

Datenschutzhinweis: Das WebIDE wird für Authentifizierungszwecke vollen Zugriff auf Ihr GitHub-Konto anfordern. Sie müssen sich keine Sorgen um Datenschutzbedenken machen – die LabEx VM wird sofort zerstört, nachdem Sie das aktuelle Lab abgeschlossen haben, und Ihre Anmeldeinformationen und Autorisierungsinformationen werden nicht gespeichert.

Dieser Push löst einen neuen Durchlauf des Workflows mit der aktualisierten Variablen aus.

Überprüfung der Ausgabe der Umgebungsvariable in den Ausführungsprotokollen auf GitHub

Nach dem Pushen Ihres Codes wird der Workflow automatisch auf GitHub ausgelöst. Sie können die Workflow-Ausführungsprotokolle (Logs) einsehen, um zu überprüfen, ob die Umgebungsvariable korrekt verwendet wird.

  1. Besuchen Sie Ihr Repository auf GitHub in einem Webbrowser: https://github.com/your-username/github-actions-demo
  2. Klicken Sie oben auf der Repository-Seite auf den Tab Actions.
  3. Sie sollten einen neuen Workflow-Lauf sehen, der wahrscheinlich den Namen "Update greeting variable" trägt.

Hinweis: Wenn Sie Code pushen, können mehrere Actions ausgelöst werden, falls Sie mehrere Workflow-Dateien in Ihrem Repository haben. Bitte identifizieren Sie den korrekten Workflow-Lauf, indem Sie den Workflow-Namen in der linken Seitenleiste überprüfen oder die Liste der Workflow-Läufe auf der rechten Seite verwenden.

  1. Klicken Sie auf den Titel des Laufs und dann auf den Job print-greeting.
  2. Erweitern Sie den Schritt Print Greeting, um die Ausgabe zu sehen.

Sie sollten die Befehlsausführung sehen:

Run echo "Hi, World!"
  echo "Hi, World!"
  shell: /usr/bin/bash -e {0}
Hi, World!

Beachten Sie, dass ${{ env.GREETING }} durch seinen neuen Wert Hi ersetzt wurde.

GitHub Actions logs

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen GitHub Actions Workflow erstellt, der Umgebungsvariablen (Environment Variables) verwendet. Sie haben gelernt, wie man:

  1. Umgebungsvariablen auf Workflow-Ebene mithilfe des Schlüsselworts env definiert.
  2. Auf diese Variablen in Ihren Schritten unter Verwendung der Syntax ${{ env.VARIABLE_NAME }} zugreift.
  3. Die Variable aktualisiert und den Workflow durch Pushen von Änderungen erneut auslöst.

Umgebungsvariablen sind unerlässlich für die Verwaltung von Konfigurationswerten, die sich zwischen Umgebungen oder Läufen ändern können, ohne die fest codierte Befehlslogik zu ändern.