Erkunden von Continuous Delivery mit GitHub Actions

Abgeschlossen

GitHub-Aktionen bieten den Mechanismus für die Implementierung von Softwarebereitstellungsworkflows mithilfe der Funktionen der GitHub-Plattform. Dies wäre der optimale CI/CD-Ansatz für die Organisation in unserem Beispielszenario, in Anbetracht der Pläne, GitHub für seine DevOps-Reise zu verwenden. In dieser Lektion erfahren Sie mehr über die Verwendung von GitHub-Aktionen zum Erstellen und Ausführen von CI/CD-Workflows.

Was sind GitHub-Aktionen?



Im Kontext von GitHub haben die Begriffsaktionen tatsächlich eine doppelte Bedeutung. Die erste (großgeschriebene Aktionen) stellt den GitHub-Dienst dar, der die Möglichkeit zum Implementieren von CI/CD-Workflows bietet. Die zweite ( Kleinbuchstabeaktionen) bezeichnet wiederverwendbare Einheiten, die in Workflows eingeschlossen werden können, um eine bestimmte Funktionalität bereitzustellen, z. B. Ausführen von Skripts und ausführbaren Dateien, Erstellen und Hochladen von Artefakten oder Einrichten des Zugriffs auf ein Azure-Abonnement.

Diagramm der kontinuierlichen Übermittlung mit GitHub-Aktionen.

Was sind die Hauptkomponenten von GitHub Actions?

Zu den wichtigsten Komponenten von GitHub-Aktionen gehören:

  • Workflow: eine Abfolge von Schritten, die in einer YAML-formatierten Datei gespeichert sind. Workflows führen die Schritte aus, sobald sie entweder manuell oder (eher) durch repositorybezogene Aktivitäten ausgelöst werden, wie Pushes oder Zusammenführungen von Verzweigungen.
  • auftrag: ein oberstes Element eines Workflows. Aufträge innerhalb eines Workflows können parallel oder sequenziell ausgeführt werden.
  • Schritt: ein wichtigstes Element innerhalb eines Arbeitsvorgangs. Jeder Schritt ist eine Aufgabe oder Aktion, die eine bestimmte Aktivität ausführt, z. B. das Ausführen eines Skripts oder das Erstellen eines Artefakts.
  • Aktion: eine vorkompilierte oder benutzerdefinierte Aktivität (wie bereits erwähnt). GitHub bietet einen Marketplace, auf dem Sie eine vielzahl vordefinierter Aktionen finden können.
  • variable: ein benannter Wert, mit dem Sie Daten in mehreren Schritten in einem Workflow speichern und wiederverwenden können. Sie können eigene benutzerdefinierte Variablen erstellen oder eine der vordefinierten Standardumgebungsvariablen verwenden, die automatisch in jedem Workflow festgelegt werden.
  • geheim: eine verschlüsselte Variable, die zum Speichern vertraulicher Daten verwendet werden kann.

Wie erstellen Sie einen GitHub Actions-Workflow?

Führen Sie die folgenden Schritte aus, um einen GitHub Actions-Workflow zu erstellen:

  1. Erstellen Sie ein Repository. Zum Implementieren des GitHub Actions-Workflows benötigen Sie ein GitHub-Konto und ein Repository. Standardmäßig enthält ein neues Repository den Standardzweig, in der Regel als main bezeichnet.
  2. Erstellen Sie ein Github/Workflows-Verzeichnis. GitHub Actions-Workflows sollten sich im Verzeichnis ".github/workflows" im Repositorystamm befinden.
  3. Erstellen Sie eine YAML-Datei. Der GitHub Actions-Workflow weist das YAML-Format auf. Der Name ist beliebig, die Erweiterung wird jedoch auf .yml festgelegt.
  4. Definieren Sie den Workflow in der YAML-Datei, und speichern Sie die Änderungen. Die YAML-Datei muss die Workflowdefinition enthalten.
  5. Committen Sie die gespeicherte Datei in das Repository. Um die Workflowänderungen abzuschließen, müssen Sie commit ausführen, wie bei jeder Datei, die Teil des Repositorys ist. Wenn Sie sich entscheiden, einen Workflow auf Ihrem lokalen Computer zu erstellen (anstatt die GitHub-Webschnittstelle zu verwenden), klonen Sie das Repository nach dem Erstellen, anwenden und übernehmen Änderungen lokal, und übertragen Sie sie dann auf GitHub.

Hier ist ein einfaches Beispiel für einen GitHub-Aktionsworkflow, der eine Meldung "Hello" von GitHub Actions! anzeigt, sobald sie ausgeführt wurde.

name: Simple GitHub Actions workflow

on: [push]

jobs:
  say_hello:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v2

    - name: Run Build Script
      run: |
        echo "Hello, GitHub Actions!"

Die erste Zeile des Workflows definiert seinen Namen, der auf der Registerkarte " Aktionen " des Repositorys auf der GitHub-Weboberfläche angezeigt wird. Die on: [push] Zeile gibt das Ereignis an, das die Ausführung des Workflows auslöst (in diesem Fall ein Push an eine beliebige Verzweigung im Repository des Workflows).

Der Workflow besteht aus einem einzelnen Auftrag mit dem Namen say_hello, wie durch den Inhalt nach der jobs: Zeile angegeben. Die nächste Zeile (runs-on: ubuntu-latest) bestimmt den Typ des Betriebssystems, das zum Ausführen des Auftrags verwendet werden soll. Die Auswahl hängt von den Aufgaben ab, die der Auftrag enthält, und in diesem Fall würde der Auftrag auch auf jedem Windows-basierten Betriebssystem ausgeführt.

Der Auftrag besteht aus zwei Schritten, wie durch den Inhalt hinter der Zeile steps: angegeben. Die Schrittsyntax unterstützt ein optionales Namensattribut, das hilfreich sein kann, um den Zweck des Schritts beim Überprüfen der Workflow-Durchläufe zu verstehen. Der Rest der Syntax hängt von der Art der Aktion ab, die ein bestimmter Schritt ausführen soll. In diesem Beispiel wird im ersten Schritt das aktuelle Repository ausgecheckt (das den Inhalt des Repositorys auf das System herunterlädt, in dem der Auftrag ausgeführt wird), während der zweite den Echobefehl ausführt, der eine benutzerfreundliche Meldung anzeigt.

Um die CI/CD-Funktionalität in GitHub Actions-Workflows zu integrieren, fügen Sie eine Reihe von Schritten (in einem oder mehreren Aufträgen) hinzu, die automatisierte Build-, Test- und Bereitstellungsaktionen ausführen. Sobald die Workflowausführung ausgelöst wurde, können Sie den Fortschritt nachverfolgen, indem Sie in Ihrem GitHub-Repository zur Registerkarte "Aktionen" navigieren.

Hinweis

Sie haben die Möglichkeit, mit aussagekräftigeren Beispielen für GitHub Actions-Workflows zu arbeiten, die die CI/CD-Integration im Labor dieses Moduls veranschaulichen.