GitHub Actions: Ausführen einfacher Befehle

GitBeginner
Jetzt üben

Einführung

GitHub Actions ist eine Continuous Integration- und Continuous Delivery (CI/CD)-Plattform, mit der Sie Ihre Build-, Test- und Bereitstellungspipeline automatisieren können. Sie können Workflows erstellen, die jeden Pull Request in Ihrem Repository bauen und testen oder zusammengeführte Pull Requests in die Produktion bereitstellen.

Ein Workflow ist ein konfigurierbarer automatisierter Prozess, der einen oder mehrere Jobs ausführt. Workflows werden durch eine YAML-Datei definiert, die in Ihrem Repository eingecheckt ist, und werden ausgeführt, wenn sie durch ein Ereignis in Ihrem Repository ausgelöst werden, oder sie können manuell oder nach einem festgelegten Zeitplan ausgelöst werden.

In diesem Lab lernen Sie die grundlegenden Bausteine eines GitHub Actions Workflows kennen:

  1. Definieren eines Jobs.
  2. Festlegen der Runner-Umgebung (z.B. Ubuntu).
  3. Hinzufügen von Schritten zur Ausführung von Befehlen.

Sie werden einen einfachen Workflow erstellen, der "Hello, World!" auf der Konsole ausgibt. Dieses Lab baut auf dem Repository auf, das Sie in den vorherigen Labs erstellt haben. Sie werden das Repository github-actions-demo klonen und eine vorhandene Workflow-Datei aktualisieren.

Fügen Sie den runs-on Schlüssel mit ubuntu-latest im build Job hinzu

In diesem Schritt klonen Sie das Repository und aktualisieren eine vorhandene Workflow-Datei, um einen Job zu definieren und das Betriebssystem anzugeben, auf dem dieser ausgeführt werden soll.

  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 Workflow-Datei namens simple-commands.yml im Verzeichnis .github/workflows:
touch .github/workflows/simple-commands.yml
  1. Öffnen Sie die Datei .github/workflows/simple-commands.yml im WebIDE. Sie finden sie im Dateiexplorer auf der linken Seite.

  2. Fügen Sie den folgenden Inhalt in die Datei ein, um den Workflow-Namen, den Trigger, den Job und den Runner zu definieren:

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

Das Schlüsselwort runs-on ermöglicht es Ihnen, den Maschinentyp anzugeben, auf dem der Job ausgeführt werden soll. GitHub stellt gehostete Runner für Linux, Windows und macOS bereit. ubuntu-latest ist ein häufig verwendeter Runner, der eine standardmäßige Ubuntu-Umgebung bietet.

Fügen Sie den Abschnitt steps unter dem build Job hinzu

Nachdem Sie die Job-Umgebung definiert haben, müssen Sie definieren, was der Job tatsächlich tut. Dies geschieht mit dem Schlüsselwort steps.

Ein Job enthält eine Abfolge von Aufgaben, die als steps bezeichnet werden. Schritte können Befehle ausführen, Setup-Aufgaben ausführen oder eine Aktion in Ihrem Repository ausführen.

Anweisungen

  1. Öffnen Sie .github/workflows/simple-commands.yml im WebIDE.
  2. Fügen Sie das Schlüsselwort steps unter dem Job build hinzu.

Aktualisieren Sie Ihre Datei so, dass sie wie folgt aussieht:

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:

Stellen Sie sicher, dass steps: auf derselben Einrückungsebene wie runs-on: steht.

Fügen Sie einen Schritt mit dem Namen 'Echo Hello' hinzu und führen Sie echo "Hello, World!" aus

In diesem Schritt fügen Sie mehrere Aufgaben zum Abschnitt steps hinzu, um verschiedene Shell-Befehle auszuführen. Dies demonstriert, dass Sie Standard-Linux-Befehle auf dem Runner ausführen können.

Anweisungen

  1. Öffnen Sie .github/workflows/simple-commands.yml im WebIDE.
  2. Fügen Sie die folgenden Schritte unter dem Schlüssel steps: hinzu:
steps:
  - name: Echo Hello
    run: echo "Hello, World!"

  - name: Show Date
    run: date

  - name: List Files
    run: ls -la

Ihre vollständige Datei sollte wie folgt aussehen:

name: Simple Commands
on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Echo Hello
        run: echo "Hello, World!"

      - name: Show Date
        run: date

      - name: List Files
        run: ls -la

Erklärung

  • echo "Hello, World!": Gibt Text auf der Konsole aus.
  • date: Zeigt das aktuelle Datum und die aktuelle Uhrzeit auf dem Runner an.
  • ls -la: Listet Dateien im aktuellen Verzeichnis auf. Sie werden feststellen, dass das Verzeichnis größtenteils leer ist, da wir den Code noch nicht ausgecheckt haben (dies werden wir im nächsten Lab tun).

Commit und pushen Sie die aktualisierte Workflow-Datei

GitHub Actions Workflows sind Teil des Codes Ihres Repositorys. Um den Workflow zu aktivieren, müssen Sie die Änderungen committen und auf GitHub pushen.

  1. Stellen Sie sicher, dass Sie sich im Repository-Verzeichnis befinden:
cd ~/project/github-actions-demo
  1. Stagen Sie die neue Workflow-Datei:
git add .github/workflows/simple-commands.yml
  1. Committen Sie die Änderungen mit einer aussagekräftigen Nachricht:
git commit -m "Add simple commands workflow"

Beispielausgabe:

[main ... ] Add simple commands workflow
 1 file changed, 14 insertions(+)
 create mode 100644 .github/workflows/simple-commands.yml
  1. Pushen Sie die Änderungen auf das Remote-Repository auf GitHub:
git push

Hinweis zur Authentifizierung:
Wenn Sie git push ausführen, werden Sie von der WebIDE automatisch zur Authentifizierung aufgefordert. 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 dann in der nächsten Aufforderung auf "Open".
  3. Melden Sie sich im geöffneten 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, dass das Terminal den Push-Vorgang erfolgreich abschließt.

Datenschutzhinweis: Die 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 nach Abschluss des aktuellen Labs zerstört, und Ihre Anmeldeinformationen sowie Autorisierungsinformationen werden nicht gespeichert.

Dieser Authentifizierungsprozess erfordert keine manuelle Konfiguration von Benutzername oder Personal Access Token (PAT).

Beispielausgabe:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 447 bytes | 447.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   abcdef1..1234567  main -> main

Workflow-Ausführungsprotokolle im GitHub Actions Tab anzeigen

Nach dem Pushen Ihres Codes wird der Workflow automatisch auf GitHub ausgelöst. Sie können die Protokolle des Workflow-Laufs (workflow run logs) einsehen, um zu sehen, was passiert ist.

  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 gelisteten Workflow-Lauf sehen, der wahrscheinlich "Simple Commands" oder "Add simple commands workflow" heißt.

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 Workflow-Laufs und dann auf den Job build.
  2. Erweitern Sie die Schritte Echo Hello, Show Date und List Files, um deren Ausgabe anzuzeigen.

Sie werden feststellen, dass List Files ein leeres Verzeichnis anzeigt (abgesehen von versteckten Dateien wie . und ..), was demonstriert, dass der Runner mit einer sauberen Umgebung (clean slate) startet.

GitHub Actions logs
GitHub Actions tab

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen GitHub Actions Workflow erstellt, der mehrere Shell-Befehle ausführt. Sie haben gelernt, wie man:

  1. Einen Job definiert: Sie haben einen build Job erstellt.
  2. Einen Runner auswählt: Sie haben runs-on: ubuntu-latest verwendet.
  3. Mehrere Befehle ausführt: Sie haben Schritte hinzugefügt, um echo, date und ls auszuführen.
  4. Die Runner-Umgebung beobachtet: Sie haben gesehen, dass der Runner mit einem leeren Verzeichnis startet.

Im nächsten Lab lernen Sie, wie Sie die Checkout Action verwenden, um auf Ihre Repository-Dateien innerhalb des Runners zuzugreifen.