Übung: Erstellen und Ausführen eines einfachen Workflows
Wichtig
Sie benötigen für diese Übung ein eigenes Azure-Abonnement. Außerdem fallen möglicherweise Gebühren für Sie an. Wenn Sie noch kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Sie möchten die Bereitstellung von Updates für die Website Ihres Spielwarenunternehmens automatisieren. Als ersten Schritt erstellen Sie in GitHub Actions einen einfachen Workflow.
In dieser Übung führen Sie die folgenden Schritte aus:
- Erstellen eines GitHub-Kontos und -Repositorys
- Erstellen eines einfachen Workflows
- Ausführen Ihres einfachen Workflows
Erstellen eines Repositorys in GitHub
Wechseln Sie in einem Browser zu GitHub. Melden Sie sich mit Ihrem GitHub-Konto an, oder erstellen Sie ein neues Konto, falls Sie noch keins besitzen.
Klicken Sie auf das Pluszeichen (+) in der oberen rechten Ecke des Fensters, und wählen Sie dann Neues Repository aus.
Geben Sie die Details Ihres neuen Repositorys ein:
- Besitzer: Wählen Sie im Dropdownmenü Ihren GitHub-Benutzernamen aus. Im Screenshot ist
mygithubuser
der GitHub-Kontoname des Repositorybesitzers. Sie benötigen Ihren Kontonamen später in diesem Modul. - Repositoryname: Geben Sie einen aussagekräftigen, aber kurzen Namen ein. Verwenden Sie für dieses Modul
toy-website-workflow
. - Beschreibung: Fügen Sie eine Beschreibung ein, damit andere Benutzer*innen nachvollziehen können, wofür das Repository vorgesehen ist.
- Privat: Sie können GitHub verwenden, um öffentliche und private Repositorys zu erstellen. Erstellen Sie ein privates Repository, weil nur Personen in Ihrer Organisation auf die Dateien Ihrer Toy-Website zugreifen sollten. Sie können anderen Personen später Zugriff gewähren.
Wenn Sie fertig sind, sollte Ihre Repositorykonfiguration wie der folgende Screenshot aussehen:
- Besitzer: Wählen Sie im Dropdownmenü Ihren GitHub-Benutzernamen aus. Im Screenshot ist
Klicken Sie auf Create repository (Repository erstellen).
Klonen des Repositorys
Klonen Sie Ihr Repository in Visual Studio Code.
Wählen Sie auf der Repositoryseite die Schaltfläche zum Kopieren aus, um die URL in Ihr Git-Repository zu kopieren.
Öffnen Sie Visual Studio Code.
Öffnen Sie in Visual Studio Code ein neues Terminalfenster, indem Sie auf Terminal>Neues Terminal klicken. Das Fenster wird in der Regel am unteren Bildschirmrand geöffnet.
Navigieren Sie im Terminal zu dem Verzeichnis, in dem Sie das GitHub-Repository auf Ihrem lokalen Computer klonen möchten. Führen Sie beispielsweise den folgenden Befehl aus, um das Repository in den Ordner toy-website-workflow zu klonen:
cd toy-website-workflow
Geben Sie
git clone
ein, und fügen Sie die zuvor kopierte URL ein. Das Ergebnis sollte in etwa wie folgt aussehen:git clone https://github.com/mygithubuser/toy-website-workflow
Sie erhalten eine Warnung, dass Sie ein leeres Repository geklont haben. Sie können die Meldung ignorieren.
Dies ist das erste Mal, dass Sie dieses Repository verwendet haben, sodass Sie möglicherweise aufgefordert werden, sich anzumelden.
Geben Sie unter Windows 1 ein, um sich über einen Webbrowser zu authentifizieren, und drücken Sie die EINGABETASTE.
Wählen Sie unter macOS Authorize (Autorisieren) aus.
Ein Browserfenster wird geöffnet. Möglicherweise müssen Sie sich erneut bei GitHub anmelden. Wählen Sie Autorisieren.
Öffnen Sie Visual Studio Code erneut im Repositoryordner, indem Sie den folgenden Befehl ausführen:
code -r toy-website-workflow
Tipp
Sie können Ihre GitHub Actions-Workflowdefinitionen auch auf der GitHub-Webbenutzeroberfläche bearbeiten. Wenn Sie eine Workflowdefinition öffnen, unterstützt GitHub Sie bei der Syntax der YAML-Datei und beim Einzug. Außerdem stellt es Beispielcodeausschnitte für die Aktionen bereit, die Sie verwenden möchten. In diesem Modul werden Sie mit der Definitionsdatei in Visual Studio Code arbeiten, aber Sie können auch den GitHub-Editor erkunden, um herauszufinden, wie er funktioniert.
Erstellen einer YAML-Workflowdefinition
Nachdem Sie Ihr Repository erstellt und geklont haben, können Sie nun eine einfache Workflowdefinition erstellen.
Öffnen Sie in Visual Studio Code den Explorer.
Erstellen Sie im Stamm Ihrer toy-website-workflow-Ordnerstruktur einen neuen Ordner namens .github.
Hinweis
Schließen Sie unbedingt den Punkt am Anfang des Ordnernamens ein. Er gibt an, dass es sich um einen ausgeblendeten Ordner handelt. Außerdem benötigt GitHub den Punkt für GitHub Actions, um die Workflowdefinition zu erkennen.
Erstellen Sie im Ordner .github einen weiteren Ordner mit dem Namen workflows.
Erstellen Sie im Ordner workflows eine neue Datei mit dem Namen workflow.yml.
Kopieren Sie die folgende Workflowdefinition in die Datei:
name: deploy-toy-website on: [workflow_dispatch] jobs: say-hello: runs-on: ubuntu-latest steps: - name: 'placeholder step' run: echo "Hello world!"
Speichern Sie die Datei .
Committen und puschen Sie die Datei mithilfe der folgenden Befehle in Ihr GitHub-Repository:
git add . git commit -m "Add initial workflow definition" git push
Tipp
Visual Studio Code unterstützt Sie beim Einzug in Ihrer YAML-Datei. Suchen Sie nach Wellenlinien, die Syntaxfehler angeben, oder wählen Sie Ansicht>Probleme aus, um eine Liste der Probleme in Ihrer Datei anzuzeigen.
Ausführen des Workflows
Sie haben eine Workflowdefinition erstellt. GitHub Actions erkennt Ihre Workflowdatei automatisch, da sie sich im Verzeichnis .github/workflows befindet.
Navigieren Sie im Browser zu Ihrem Repository. Möglicherweise müssen Sie die Seite aktualisieren, damit Ihre Änderungen angezeigt werden.
Klicken Sie auf die Registerkarte Actions (Aktionen).
Wählen Sie den Workflow deploy-toy-website aus.
Wählen Sie die Dropdownliste Workflow ausführen aus, und klicken Sie auf die Schaltfläche Workflow ausführen.
Der Workflow beginnt mit der Ausführung. Es kann ein paar Augenblicke dauern, und Sie können die Seite aktualisieren, aber sie sollte automatisch aktualisiert werden und Ihnen eine in der Warteschlange stehende oder laufende oder sogar bereits beendete Workflowausführung anzeigen.
Beachten Sie, dass der Ausführungsstatus anfänglich als In Warteschlange angezeigt wird. Es kann einige Zeit dauern, bis Ihr Workflow gestartet wird. Ihr Auftrag wird einer Warteschlange für einen Runner hinzugefügt, und sobald ein Runner verfügbar ist, weist GitHub Actions den Runner zu und startet den Auftrag. Der Auftragsstatus wird dann in Wird ausgeführt geändert.
Jede Workflowausführung enthält einen Bezeichner. Diesen Bezeichner können Sie verwenden, wenn Sie auf die Workflowausführung verweisen müssen und um eine bestimmte Workflowausführung zu finden.
Überprüfen der Workflowausführung
Wählen Sie nach dem Start der Workflowausführung deploy-toy-website aus, um die zugehörigen Details anzuzeigen. Aktualisieren Sie die Seite, bis als Auftragsstatus Erfolg angezeigt wird.
Beachten Sie außerdem, dass die Seite einen Bezeichner für den Git-Commit enthält, den die Ausführung verwendet hat. Der Bezeichner der Übergabe gibt an, welche Version des Inhalts Ihres Repositorys der Workflow verwendet hat.
Wählen Sie in der Auftragsliste say-hello aus.
Die Seite mit den Auftragsinformationen wird mit dem Protokoll der Schritte angezeigt, die der Workflow für Sie ausgeführt hat. Beachten Sie, dass Ihr Platzhalterschritt enthalten ist.
Beachten Sie, dass die Liste Schritte enthält, die Sie nicht angegeben haben. Diese Schritte werden automatisch von GitHub Actions erstellt.
Wählen Sie Platzhalterschritt aus.
Die Protokolle für diesen Schritt enthalten den Inhalt des Befehls (wie in der YAML-Datei Ihres Workflows angegeben) und den Text Hello World!, den das Skript ausgegeben hat.
Verknüpfen der Workflowausführung mit einem Commit
Es empfiehlt sich zu wissen, wie Sie einen Querverweis von einer Workflowausführung auf den darin enthaltenen Commit erstellen. Das Verknüpfen der Workflowausführung mit einem Commit kann Ihnen helfen, den Verlauf Ihrer Bereitstellungen nachzuverfolgen und Probleme zu diagnostizieren.
Wählen Sie Zusammenfassung aus, um zur Zusammenfassung der Ausführung zurückzukehren.
Wählen Sie den Bezeichner des Commits aus. GitHub zeigt Details zu dem Commit an, der die Workflowauslösung ausgelöst hat.