social-open-icon
social-close-icon
Facebook Instagram Linkedin twitter Youtube

Github-Aktionen

Sie können Github Actions verwenden, um einzigartige Workflows für den Softwareentwicklungslebenszyklus direkt in Ihrem Github-Repository zu erstellen. Diese Workflows bestehen aus vielen Aktivitäten oder Aktionen, die automatisch als Reaktion auf bestimmte Auslöser ausgeführt werden können.

Dadurch können Sie Funktionen wie Continuous Integration (CI) und Continuous Deployment (CD) direkt in Ihr Repository integrieren.

In diesem Tutorial gehen wir auf die Grundlagen von Github Actions ein und gehen sogar darauf ein, wie Sie Ihre benutzerdefinierten Workflows erstellen.

1. Warum sind Github-Aktionen wichtig?

  • Github Actions und welche Vorteile sie bieten.
    In Github integriert: Github Actions ist vollständig in Github integriert und das auch ist keine separate Website erforderlich. Dies bedeutet, dass es zusammen mit Ihren anderen Repository-bezogenen Funktionen wie Pull Requests und Bugs am selben Ort verwaltet werden kann.
  • Multi-Container-Testen
    Multi-Container ist eine Technik, bei der mehrere Container gleichzeitig getestet werden. Indem Sie Ihrem Workflow Unterstützung für Docker- und Docker-Compose-Dateien hinzufügen, können Sie Multi-Container-Setups testen.
  • Es stehen mehrere CI-Vorlagen zur Verfügung:
    Github bietet eine Vielzahl von Vorlagen für verschiedene CI-Konfigurationen (Continuous Integration), was den Einstieg relativ einfach macht. Sie können auch Ihre Vorlagen erstellen, die Sie dann als Aktion auf dem Github Marketplace teilen können.
  • Ausgezeichneter kostenloser Plan:
    Jedes Open-Source-Repository erhält kostenlose Aktionen, einschließlich 2000 kostenlosen Build-Minuten pro Monat für alle Ihre privaten Repositorys, vergleichbar mit den meisten kostenlosen CI/CD-Plänen. Wenn das für Ihre Anforderungen nicht ausreicht, können Sie auf einen anderen Plan upgraden oder sich selbst hosten.

2. Die grundlegenden Ideen

Die in Github-Aktionen verwendeten Grundprinzipien sind unten aufgeführt. Sie sollten sich mit ihnen vertraut machen, bevor Sie sie verwenden oder die Anweisungen lesen.

  • Aktionen:
    Aktionen sind die einfachsten und portierbarsten Bausteine eines Prozesses und können zu einem Job kombiniert werden. Sie können Ihre Aktionen erstellen oder öffentlich veröffentlichte Aktionen vom Marktplatz verwenden.
  • Ereignis:
    Ein Ereignis ist eine bestimmte Aktivität, die die Ausführung eines Workflows auslöst. Wenn jemand einen Push zum Repository durchführt oder einen Pull-Request erstellt, wird ein Workflow initiiert. Webhooks Runner kann auch verwendet werden, um Ereignisse so zu konfigurieren, dass sie auf externe Ereignisse warten:
  • Runner:
    Ein Runner ist ein Computer, der das Github Actions-Runner-Programm ausführt. Der Runner wartet dann darauf, dass Jobs verfügbar werden, die er anschließend ausführen kann. Sie führen die Aufgabenaktionen aus, nachdem sie einen Auftrag angenommen haben, und melden den Fortschritt und die Ergebnisse an Github. Läufer können auf Ihren Maschinen/Servern selbst gehostet oder auf Github gehostet werden.
  • Job:
    Ein Job besteht aus zahlreichen Phasen, die in einer virtuellen Umgebungsinstanz ausgeführt werden. Jobs können parallel oder nacheinander ausgeführt werden, je nachdem, ob der aktuelle Job vom Erfolg des vorherigen Jobs abhängt.
  • Schritt:
    Ein Schritt ist eine Sammlung von Aufgaben, die ein Job erledigen kann. Schritte können zum Ausführen von Anweisungen oder Operationen verwendet werden.
  • Workflow:
    Ein Workflow ist ein automatisierter Vorgang, der durch ein Ereignis initiiert werden kann und aus einem oder mehreren Jobs besteht. Workflows werden im Verzeichnis.Github/workflows mithilfe einer YAML-Datei definiert.

3. Verwendung von Aktions- und Workflow-Vorlagen

Die Verwendung einer der vielen auf dem Github Marketplace verfügbaren Prozess- und Aktionsvorlagen ist der einfachste Weg, mit Ihrem Workflow zu beginnen. Wenn Sie nicht sicher sind, welche Aktivitäten sinnvoll wären, schauen Sie sich die Github-Vorschläge an, die auf jedes Repository zugeschnitten sind.

  • Das Hinzufügen einer Workflow-Vorlage umfasst die folgenden Schritte:
  • Navigieren Sie auf der Hauptseite Ihres Repositorys zu „Aktionen“. Wählen Sie dann eine Vorlage aus dem Dropdown-Menü aus und klicken Sie auf Diesen Workflow einrichten. Vorlage für eine Node.js-Aktion. Abschließend können Sie über die Schaltfläche „Commit starten“ Änderungen im Editor vornehmen und die Aktion in Ihr Repository übernehmen.Editor für Workflows
  • Das Hinzufügen einer Aktionsvorlage zu Ihrem Workflow besteht aus den folgenden Schritten:
    Aktionsvorlagen sind auf dem Github Marketplace und im Workflow-Editor ganz rechts verfügbar. Im Workflow-Editor gibt es Aktionsvorlagen. Indem Sie den Code der Aktionen kopieren und in Ihre.yml-Datei einfügen, können Sie die Vorlage hinzufügen. Das Schlüsselwort „uses“ muss verwendet werden, um den eindeutigen Aktionsnamen und die Versionsnummer zu definieren.
    Installation der Aktion

4. Erstellen eines Workflows

Vielleicht sind Sie neugierig auf die Syntax, die zum Schreiben und Konfigurieren von Workflows verwendet wird, nachdem Sie nun wissen, wie Sie Vorlagen für Ihren Workflow verwenden.

  • Das Erstellen einer Workflow-Datei umfasst die folgenden Schritte:
  • Durch Hinzufügen einer.yml-Workflow-Datei zum Verzeichnis.Github/workflows können Workflows erstellt werden. Fügen Sie beispielsweise.github/workflows/continuous-deployment.yml zu Ihrem Projekt hinzu. Sie können mit der Arbeit an Ihrem Workflow beginnen, nachdem Sie die Datei erstellt haben.
  • Syntax im Allgemeinen:
    Github-Aktionsdateien haben entweder die Dateierweiterung.yml oder.YAML und werden in YAML-Syntax erstellt. Wenn Sie neu bei YAML sind und mehr erfahren möchten, empfehle ich die Lektüre „Lerne YAML in fünf Minuten“ oder „Einführung in YAML“.

Die wichtigsten Konzepte der Workflow-Datei sind unten aufgeführt.

Name:
Dies ist der Name, der auf der Github-Aktivitätenseite für Ihren Prozess angezeigt wird. Wenn Sie diesen Bereich leer lassen, wird der Dateiname verwendet.

Continuous Deployment ist der Name des Projekts.

Das Schlüsselwort on gibt an, welche Github-Ereignisse den Workflow starten. Sie können einen Workflow mit einem einzelnen Ereignis, einem Array von Ereignissen oder einer Konfigurationszuordnung planen.

am:
[Pull Request, Probleme] oder am: [Push #]

Jobs:
Ein oder mehrere Jobs bilden einen Workflow-Lauf. Jobs beschreiben die Funktionalität, die im Prozess ausgeführt wird und standardmäßig parallel ausgeführt wird.

Jobs: mein-Job: mein-Job-Name: mein-Job-Name: mein-Job-Name: mein-Job-Name

-on: ubuntu-latest -on: ubuntu-latest -on: ubuntu-la

title: Führen Sie den folgenden Befehl aus, um eine Begrüßung zu drucken: | echo Guten Tag! Mehr dazu im nächsten Teil.

Env:
Env ist eine Karte von Umgebungsvariablen, auf die alle Jobs und Schritte im Prozess zugreifen können. Sie können auch Umgebungsvariablen definieren, die exklusiv für einen Job oder eine Phase gelten. CI: true env

5. Eine Situation wählen

Es ist wichtig, Ihre Arbeitsabläufe unter den richtigen Bedingungen zu testen, um sicherzustellen, dass sie in realen Szenarien funktionieren. In diesem Teil erfahren Sie, wie Sie angeben, auf welchen Betriebssystem- und Softwareversionen Ihr Prozess ausgeführt werden soll, und wie Sie Ihre Build-Matrix einrichten, um einen Workflow in verschiedenen Umgebungen auszuführen.

  • Runs-on:
    Mit dem Schlüsselwort „Runs-on“ können Sie das Betriebssystem (Betriebssystem) angeben, auf dem Ihr Workflow ausgeführt werden soll, beispielsweise die neueste

Ubuntu-latest ist das Betriebssystem, auf dem es läuft.

  • Erstellen Sie eine Matrix:
    Mit einer Build-Matrix können Sie unterschiedliche Betriebssysteme, Plattformen und Sprachversionen testen. Das Schlüsselwort strategy kann verwendet werden, um eine Build-Matrix bereitzustellen, die dann an run-on gesendet wird.

läuft weiter:
$$$$$$

Strategie:

os: [ubuntu-16.04, ubuntu-18] Matrix .04]

[6, 8, 10] Knoten

Sie führen Ihr Projekt auf zwei verschiedenen Betriebssystemen und drei verschiedenen Node.js-Versionen aus. Weitere Informationen zu einer Build-Matrix und dem Strategieschlüsselwort finden Sie in den Dokumenten.

6. Abhängigkeiten vom Caching:

Workflow-Ausführungen verwenden häufig die gleiche Ausgabe wie vorherige und können daher zur Verbesserung der Leistung zwischengespeichert werden. Jede Aufgabe, die auf von Github gehosteten Läufern ausgeführt wird, beginnt in einer neuen virtuellen Umgebung und verwendet standardmäßig kein Caching.

  • Einzugebende Parameter:
    Der Schlüssel (erforderlich) identifiziert den Cache und wird generiert, wenn der Cache gespeichert wird. Pfad (erforderlich): Der Dateipfad des Verzeichnisses zum Cachen oder Wiederherstellen.

    Wenn für den Schlüssel kein Cache-Treffer gefunden wurde, Restore-Key (optional): Eine geordnete Liste alternativer Schlüssel, die zum Auffinden des Caches verwendet werden sollen.

  • Parameter für die Ausgabe:
    cache-hit:Eine boolesche Variable, die angibt, ob die Cache-Aktion erfolgreich war. Speichern des npm-Cache als Beispiel:

Caching mit npm ist der Name des Projekts.

auf:drücken

Jobs: Build: ubuntu-latest-latest-latest-latest-latest-latest-latest-latest-latest-latest-latest

Schritte:– actions/checkout@v1 wird verwendet

– Name: Cache-Knotenmodule; Pfad: Knotenmodule; Aktionen/cache@v1; Name: Cache-Knotenmodule; Name: Cache-Knotenmodule; Name: Cache-Knotenmodule; Name: Cache-Knotenmodule; Name: Cache

hashFiles(‚**/package-lock.json‘) Schlüssel: $ runner.OS -build-$ hashFiles(‚**/package-lock.json‘)restore

-build-$ env.cache-name -build-$ env.cache-name -build-$ env.cache-name

– build-$ env.cache-name -build-$ env.cache-name -build-$ env.cache-name

– $ runner.OS -build- $ runner.OS -$ runner.OS -$ runner.OS -$ runner.OS -$ runner.OS -$ runner.OS

Install Dependencies ist ein Begriff für ein Programm, das Abhängigkeiten installiert. npm install ist ein Befehl, der zum Installieren von npm-Modulen verwendet werden kann.

– Name:npm build; npm-Build; npm-Build; npm-Build; npm build;

– Titel:npm test wird zum Ausführen des Tests verwendet.

In diesem Beispiel speichern wir das Knotenmodulverzeichnis eines Knotenprojekts zwischen, sodass Abhängigkeiten nicht bei jeder Workflow-Ausführung installiert werden müssen.

7. Dauerhafte Workflow-Daten:

Mit Artefakten können Sie Daten zwischen laufenden Aufträgen übertragen und nach Abschluss des Arbeitsablaufs speichern. Eine Datei oder ein Satz von Dateien, die während einer Workflow-Ausführung erstellt werden, wird als Artefakt bezeichnet.

 

  • Um Daten zwischen Jobs auszutauschen, gehen Sie wie folgt vor:

Bevor der Auftrag abgeschlossen ist, speichern Sie die Datei in einem Archiv.

Die Datei kann nach dem Hochladen in anderen Jobs innerhalb desselben Workflows verwendet werden.

Es gibt einige häufige Szenarien, in denen Artefakte gespeichert werden.

Dateien mit Protokollen

Fehler, Testergebnisse und Screenshots

Die Ausgabe des Stresstests und die Ergebnisse der Codeabdeckung

Datentransfer zwischen Jobs:

Um Daten zwischen Aufgaben in einem Workflow zu kommunizieren, verwenden Sie die Aktionen „upload-artifact“ und „download-artifact“.

Name:Daten sollten zwischen Jobs geteilt werden.

[push] [push] [push] [push] [push]

upload-data-job: Name: Hochladen von Daten zu Artefact-Ausführungsjobs: upload-data-job: Name: Hochladen von Daten zu Artefact-Ausführungsjobs: upload-data-job: Name

-on: ubuntu-latest -on: ubuntu-lates t -on: ubuntu-la

– Bash-Ausführung: | echo Hallo Welt! > hello-world.txt – Shell: Bash Run:

Upload – Name actions/upload-artifact@v1 wird in der Datei „Hello World“ verwendet.

hello-world.txt ist der Name der Datei.

Download-Data-Job: Name: Muss Daten von Artefakt herunterladen: Upload-Data-Job wird ausgeführt

-on: Windows-die letzten Schritte:

– Shell: Bash-Ausführung: | value=cat hello-world/hello-world.txt echo $value > – Name: Datei „Hello World herunterladen“ verwendet: actions/download-artifact@v1 mit: Name: Hallo-World – Shell: Bash Ausführen: | value=cat hello-world/hello-world.txt echo $value > hallo-world/hello-world.txt

– Name: Hallo Welt zum Artefakt hochladen mit: Name: Hallo-Welt Pfad: hello-world.txt Verwendet: actions/upload-artifact@v1 mit: Name: Hallo-Welt Pfad: Hallo-Welt.txt</ p>

In diesem Beispiel erstellt ein Dienst eine Datei und veröffentlicht sie auf dem Artefakt, das die Aktion „upload-artifact“ verwendet. Die Datei wird anschließend vom Download-Job heruntergeladen und auf der Konsole gedruckt.

Weitere Beispiele für die Persistenz von Workflow-Daten finden Sie in der offiziellen Dokumentation.

Sich um einen Arbeitsablauf kümmern

Auf der Workflow-Seite Ihres Repositorys können Sie Ihre Workflow-Ausführungen beobachten und verwalten. Es ermöglicht Ihnen, Aufträge zu starten, abzubrechen und neu zu starten und die Ergebnisse bereits abgeschlossener Aufträge anzuzeigen.

Eine dem Workflow gewidmete Seite. Sie sehen eine Liste aller Workflows, die in Ihrem Repository ausgeführt wurden, und Sie können einen Drilldown zu jedem einzelnen durchführen, indem Sie darauf klicken.

Eine detaillierte Seite zum Workflow

Die offizielle Dokumentation enthält weitere Informationen. Aktionen ausführen Sie können benutzerdefinierten Code schreiben, der mit Ihrem Repository interagiert, um Aktionen zu erzeugen, die Sie dann in Ihren Workflows verwenden oder auf dem Github Marketplace veröffentlichen können.

 

  • Sie können Docker- und Javascript-Aktionen auf Github erstellen, und beide erfordern eine Aktion. Verwenden Sie eine YAML-Metadatendatei, um die Eingaben, Ausgaben und Haupteinstiegspunkte Ihres Vorgangs zu identifizieren.

 

8. Die Syntax der Metadaten lautet wie folgt:

Wie bereits erwähnt, erfordern sowohl Docker- als auch Javascript-Aktionen eine Metadatendatei mit dem Namen action.yml. Hier finden Sie eine Übersicht über die verschiedenen Bereiche sowie eine kurze Beschreibung ihrer Aufgaben.

Name (erforderlich) – Der Name der Aktion, der in jeder Aufgabe zur Identifizierung verwendet wird.

kurze Beschreibung (erforderlich) – eine kurze Beschreibung der Funktionalität der Aktion (erforderlich) – der Befehl, der nach Abschluss der Operation ausgeführt wird Autor (optional) – der Name des Autors der Aktion wird eingegeben (optional) – eine Liste mit Eingaben Parameter, die zum Generieren einer Laufzeitausgabe verwendet werden können (optional) – Eine Liste von Ausgabeparametern, die von folgenden Aktionen im Workflow verwendet werden.

Ein Beispiel für eine Datei könnte wie folgt aussehen:

‚Hello World‘ ist der Name des Programms. Die Beschreibung lautet: „Jemanden begrüßen und die Zeit im Auge behalten.“

who-to-greet: who-to-greet: who-to-greet: who-to-gre

„Wer begrüßt werden soll“ ist eine Voraussetzung: wahr

„Welt“ ist die Standardeinstellung.

Zeit: Ausgaben

„Die Zeit, als wir Sie begrüßten“ ist eine Beschreibung.

’node12′ wird verwendet.

‚index.js‘ ist die Primärdatei.

 

  • JavaScript-Aktionen
    Javascript-Aktionen können direkt auf jeder der von GitHub gehosteten virtuellen Maschinen ausgeführt werden, wodurch der Aktionscode aus der Umgebung entfernt wird. Im Vergleich zur Docker-Alternative laufen sie schneller und sind einfacher zu erstellen.
  • Docker-Aktion
    Docker-Aktion Indem Sie den Code Ihrer Aktion mit der Umgebung in einen Docker-Container packen, können Sie erstellen eine konsistentere und zuverlässigere Arbeitseinheit. Sie können bestimmte Versionen eines Betriebssystems, Abhängigkeiten, Tools und Code in einem Docker-Container verwenden.

 

Fazit

Du hast bis zum Ende durchgehalten! Ich hoffe, dieser Artikel hat Ihnen ein besseres Verständnis der Github-Aktionen vermittelt und zeigt, wie Sie diese zur Automatisierung Ihres Github-Workflows nutzen können.

Lassen Sie uns für Ihr nächstes Webentwicklungsprojekt zusammenkommen.

Planen Sie mit uns Ihre nächste Web- oder mobile Anwendungslösung. Teilen Sie uns Ihre Anforderungen mit und unser Team wird sich mit Ihnen in Verbindung setzen.