Kapitel 1. Die Grundlagen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Willkommen bei GitHub Actions lernen. Ich freue mich, dass du hier bist und auf das, was du gleich lernen wirst. Es ist eine fantastische Zeit, um in der Softwarebranche zu arbeiten. Von Containern über Cluster bis hin zu Clouds, von Automatisierung bis hin zu generativer KI, von Sicherheit bis hin zu SREs - die Möglichkeiten, interessante Softwareprojekte zu erstellen und zu ihnen beizutragen, waren noch nie so groß. Und dank leistungsstarker Plattformen wie GitHub war es noch nie so einfach, etwas zu schaffen und beizutragen.

GitHub ist führend bei der Entwicklung eines Ökosystems für die Verwaltung von Softwarekomponenten und die Zusammenarbeit, wie die große Zahl der in den Repositories verwalteten Open-Source-Projekte beweist. Darüber hinaus hat GitHub seinen Nutzern durch die Verbesserung seiner Schnittstellen, die Nachverfolgung von Beiträgen und Problemen, Mechanismen zur Veröffentlichung und zum Austausch von Informationen und vieles mehr immer wieder zusätzlichen Nutzen gebracht.

In den letzten zehn Jahren ging es bei der effektiven Erstellung von Software nicht nur darum, den Code zu schreiben. Es ging (und geht) auch um bessere und schnellere Bereitstellungstechnologien. Die Möglichkeiten von Continuous Integration/Continuous Delivery (auch bekannt als CI/CD), DevOps und verwandten Praktiken sind heute weitgehend selbstverständlich und leicht zu erreichen. Aber in der Vergangenheit musste man bei GitHub immer noch ein separates Tool integrieren, um eine Delivery-Pipeline oder andere wichtige Automatisierungen zu ermöglichen. Obwohl es schon lange Möglichkeiten gibt, erweiterte CI/CD-Prozesse einzubauen, fehlte GitHub bisher eine wirklich integrierte Lösung, um CI/CD und einen durchgängigen Softwareentwicklungszyklus (SDLC) in seinem Ökosystem zu ermöglichen. Die Antwort darauf ist jetzt in Form von GitHub Actions gekommen.

Wie erreicht GitHub Actions dies also? Wie bietet es einen echten Mehrwert für sich selbst und gegenüber anderen Lösungen? Und, was für dich wahrscheinlich am wichtigsten ist, wie kannst du es leicht erlernen und für deine eigenen Bedürfnisse nutzen?

Wenn du eine neue Technologie lernst, ist es wichtig (oder zumindest hilfreich), einige grundlegende Zusammenhänge zu kennen, bevor du dich in die technischen Details stürzt. Deshalb werde ich in diesem Kapitel kurz einige grundlegende Informationen zu den folgenden Fragen behandeln:

  • Was sind GitHub-Aktionen?
  • Was sind die Anwendungsfälle für GitHub Actions?
  • Was sind die Kosten dafür?
  • Wann ist es sinnvoll, zu GitHub Actions zu wechseln?

Am Ende dieses Kapitels hast du ein solides Grundgerüst für den Rest deines Lernens über GitHub Actions. Und jetzt lass uns loslegen.

Vorraussetzungen

In diesem Buch wird davon ausgegangen, dass du bereits ein Grundwissen über Git und GitHub hast. Wenn das nicht der Fall ist, gibt es eine Reihe von kostenlosen Ressourcen, die dir helfen, beides zu verstehen.

Wenn du bereits über ein oberflächliches Wissen über GitHub Actions verfügst, kannst du Kapitel 2 überspringen, um in die technischen Details einzutauchen. Wenn du die Technologie noch nicht kennst oder eine fundierte Entscheidung darüber treffen willst, ob sie für dein Projekt oder dein Team sinnvoll ist, empfehle ich dir, das Material hier zu lesen.

Was ist GitHub Actions?

Auf diese Weise kannst du GitHub Actions definieren: GitHub Actions ist ein durchgängiger , auf GitHub ausgerichteter SDLC-Prozess. Es bietet eine Automatisierungsplattform und ein Framework, das bisher bei GitHub fehlte und mit anderen Lösungen wie Jenkins oder Travis CI hinzugefügt werden musste.

In dieser einen Aussage steckt eine ganze Menge. Aber konzentrieren wir uns auf zwei Teile, die den Kern der Funktionalität ausmachen: die Automatisierungsplattform und das Framework.

Automation Plattform

Für den Endnutzer ist GitHub Actions eine Möglichkeit, automatisierte Workflows zu erstellen und auszuführen, die an GitHub-Ereignisse gebunden sind. Am ehesten kannst du dir das im Zusammenhang mit CI/CD vorstellen. Du nimmst z. B. eine Änderung über einen Pull Request vor und GitHub startet eine Continuous Delivery Pipeline. Bevor es GitHub Actions gab, hättest du ein externes Tool oder einen Prozess gebraucht, um auf die Benachrichtigung von GitHub zu reagieren, dass der Pull Request stattgefunden hat, und um ihn dann zu bearbeiten. Und die Automatisierung, die nach dem Pull Request und der ersten Benachrichtigung erfolgte, wurde über dieses externe Tool implementiert.

Mit Actions hast du jetzt die Möglichkeit, diese Automatisierung in einem von GitHub verwalteten Kontext zu erstellen. Du kannst das Was, Wann und Wie für automatisierte Reaktionen auf Ereignisse wie Push- oder Pull-Requests festlegen. Wenn zum Beispiel ein Push in einem Zweig deines Repositorys stattfindet, holst du dir automatisch den neuesten Code und versuchst, ihn zu bauen. Wenn eine Pull-Anfrage für einen anderen Zweig eingeht, baue und teste den Code automatisch. Wenn dabei ein Fehler auftritt, aktualisiere einen GitHub-Problembericht. Wenn es keinen Fehler gibt, fährst du automatisch mit der Veröffentlichung einer neuen Version fort.

Praktischerweise kannst du deine Automatisierungsdefinitionen und Workflows zusammen mit deinem Code im GitHub-Repository erstellen und speichern. Und du kannst sie dort auch bearbeiten. Kurz gesagt: Aktionen machen es einfacher, in GitHub zu automatisieren, weil sie ein Teil von GitHub sind. Sie basieren auf einem von GitHub bereitgestellten Framework, das für Struktur und Fluss sorgt. Darauf werde ich als Nächstes eingehen.

Rahmenwerk

Um eine Automatisierungsplattform von einem Sammelsurium von Mechanismen in einen organisierten und nutzbaren Prozess zu verwandeln, müssen Struktur und Ablauf vorgegeben werden. Ohne sie hast du nur eine Sammlung von Werkzeugen. Mit ihnen kannst du eine wirklich nützliche Automatisierung zusammenstellen, um alle anfallenden Aufgaben zu erledigen.

Für Actions besteht dieses Framework aus einem Kernsatz zusammengehöriger Komponenten in GitHub. Diese Komponenten können zusammengefügt werden, um einfache oder komplexe Automatisierungen auf verständliche und vorhersehbare Weise auszuführen. Und diese Automatisierung wird im Repository als Code gespeichert.

Ich werde in Kapitel 2 mehr über diese einzelnen Komponenten erzählen. Aber für einen kurzen Überblick funktioniert es folgendermaßen: Wenn ein passendes Ereignis eintritt, wird eine im Repository gespeicherte Workflow-Definition ausgelöst, die wiederumAufträge auf bestimmten Systemen, den sogenannten Runnern, auslöst. Die Aufträge bestehen aus einer Abfolge von Schritten , die entweder eine vordefinierte Aktion oder einen Befehl auf der Betriebssystem-Shell des Runners ausführen.

Ähnliche Funktionen waren in GitHub zwar schon vorher über Mechanismen wie API-Aufrufe verfügbar, aber sie waren auf einer höheren Ebene nicht so einfach zusammenzustellen. Entwickler mussten oft viel Zeit und Mühe investieren, um zu lernen, wie man die richtigen API-Aufrufe und/oder Integrationen mit anderen externen Werkzeugen (wie Jenkins, Travis CI usw.) zusammenstellt. Oder sie mussten eigene Skripte und Programmierungen verwenden, um das gewünschte Ziel zu erreichen. Das galt vor allem dann, wenn sie die Prozesse über GitHub verwalten wollten. (Eine andere Möglichkeit war, das Repository außerhalb von GitHub zu spiegeln, damit die Produkte es nutzen können).

Actions implementiert ein natives Framework in GitHub, das eine nahtlose und flexible Nutzung ermöglicht. Diese Flexibilität wird durch den Actions Marketplace erhöht, eine öffentliche Registrierung, in der Aktionen veröffentlicht und geteilt werden können. Wenn du Workflows für gängige Aktivitäten erstellen möchtest (z. B. das Auschecken von Code oder das Bauen mit einem bestimmten Build-Tool), kannst du aus den vorhandenen Actions im Marketplace wählen. Wenn du eine umfangreichere Logik möchtest oder brauchst, für die es noch keine Aktion gibt, kannst du deine eigene Aktion mit einer klar definierten Struktur programmieren. Anschließend kannst du sie über den Marktplatz veröffentlichen und mit anderen teilen. Dieser Ansatz bietet ein Maß an Flexibilität, Wiederverwendbarkeit und Erweiterbarkeit, das bei GitHub bisher nicht möglich war. Ein weiterer Vorteil ist, dass du durch die Kombination von Aktionen für verschiedene Anwendungsfälle schnell Prototypen erstellen und umsetzen kannst. Auf diese Themen werde ich im nächsten Abschnitt eingehen.

Handlungen gegen Handlungen

Du wirst feststellen, dass der Begriff " Aktionen" manchmal groß geschrieben wird und manchmal nicht. Das liegt daran, dass es sowohl das größere Framework/die Plattform als auch die kleineren, vordefinierten Funktionen gibt. Beide werden mit demselben Begriff bezeichnet. Einer Empfehlung von GitHub folgend, bezeichne ich die größere Plattform/das Framework als GitHub Actions oder Actions (großes "A") und die einzelnen Funktionseinheiten als Actions (kleines "a").

Was sind die Anwendungsfälle für GitHub-Aktionen?

Als CI/CD aufkam, waren spezielle Tools wie Jenkins das wichtigste Mittel zur Erstellung von Pipelines. Diese Tools waren flexibel - vielleicht sogar zu flexibel. Du musstest hart arbeiten, um die einzelnen Teile zu einer Pipeline zusammenzufügen. Mit der breiten Einführung von CI/CD hat sich das Konzept der Pipelines als vordefinierte Struktur durchgesetzt. Und damit auch die Möglichkeit, Pipelines zu definieren, die über die Grundlagen der Erstellung einfacher Tests hinausgehen. Heutige CI/CD-Pipelines können sehr komplex sein und erweiterte Tests, mehrere Integrationsebenen und automatisierte Verteilungen/Releases umfassen. Mit GitHub Actions kannst du Workflows erstellen, die so komplex sind wie nötig, um diese Arten von Vorgängen zu bewältigen, ohne das Ökosystem von GitHub zu verlassen. Außerdem kannst du so viele verschiedene Workflows erstellen, wie du für zusätzliche Automatisierungsfälle benötigst.

Auch wenn GitHub Actions den Begriff Pipeline in seinen Prozessen nicht verwendet, ist der allgemeine Workflow-Ansatz, den es verwendet, ein ähnliches Konzept. Workflows verknüpfen kleinere Arbeitseinheiten miteinander, die Aufträge genannt werden. Aufträge sind das, was du in anderen Anwendungen oft als Phasen bezeichnest, d.h. Teile eines größeren Prozesses, die eine bestimmte und separate Funktion erfüllen. Wenn du von der Arbeit mit einem anderen Automatisierungstool kommst, kannst du dir den gesamten GitHub Actions-Workflow als eine Pipeline vorstellen, d.h. eine Änderung oder ein Ereignis löst eine Reihe von automatisierten Aktionen aus.

Der Hauptanwendungsfall ist die Reaktion auf ein Ereignis in GitHub. Es gibt aber auch Möglichkeiten, Workflows durch Ereignisse außerhalb dieser Umgebung auszulösen, nach einem bestimmten Zeitplan zu starten oder sogar manuell über die Aktionsschnittstelle in GitHub zu initiieren. Mehr über diese verschiedenen Möglichkeiten, einen Workflow zu starten, erfährst du in Kapitel 2 und auch in Kapitel 8.

Obwohl CI oder CI/CD der primäre Zweck ist, der dir in den Sinn kommt, können Workflows und Aktionen zur Automatisierung fast aller Prozesse verwendet werden. Es gibt zwei Orte, an denen du Ideen für Aktionen sammeln kannst: die Starter-Workflows und der Marktplatz für Aktionen.

Workflows versus Aktionen

Damit das klar ist: Workflows sind die Skripte oder Pipelines, die den Fluss und die Reihenfolge der Aktivitäten in GitHub Actions steuern. Die einzelnen Aktionen sind die Funktionen, die aus den Workflows heraus aufgerufen werden können, um bestimmte Aufgaben zu erledigen (z. B. Code auschecken).

Starter Workflows

Um den Nutzern zu helfen, mit Actions zu starten, zeigt GitHub beim Erstellen eines neuen Workflows Beispiel-Starter-Workflows an. Abbildung 1-1 zeigt ein Beispiel. Du musst nicht unbedingt einen dieser Workflows verwenden, aber wenn sie deinem Zweck entsprechen oder ihm nahe kommen, kannst du auf die Schaltfläche Konfigurieren klicken und sehr schnell einen neuen Workflow erstellen.

Zum Zeitpunkt der Erstellung dieses Artikels sind die Hauptkategorien, die Starter-Workflows haben, folgende:

Einsatz
Eine Reihe von Beispiel-Workflows für die Erstellung von einsatzfähigen Objekten (wie Containern) und ihre anschließende Bereitstellung auf verschiedenen Cloud-Plattformen
Sicherheit
In erster Linie eine Reihe von Code-Scanning-Workflows, die verschiedene Sicherheitsplattformen und deren Tools nutzen
Kontinuierliche Integration
Eine große Anzahl von Workflows, die die Bereiche Bauen, Testen und/oder Veröffentlichen für eine große Anzahl verschiedener Programmiersprachen und Tools abdecken
Automatisierung
Einige einfache Beispiele für die grundlegende Automatisierung, darunter ein Hallo-Welt-Typ, eines, das zeigt, wie man einen Workflow manuell auslöst, und ein paar, die sich mit anderen GitHub-Konstrukten wie Pull Requests und Issues befassen
Seiten
Workflows zum Verpacken und Bereitstellen von Websites mit gängigen Tools wie Gatsby, Astro, Jekyll usw.

Du kannst die vollständige Liste und den Code für die Starter-Workflows unter https://github.com/actions/starter-workflows einsehen.

Abbildung 1-1. Starter-Workflows für die Verwendung mit GitHub-Aktionen

Aktionen Marktplatz

Im Gegensatz zu Workflows, die Aktionen aufrufen, findest du auf dem GitHub Marketplace im Bereich Actions eine nützliche Auswahl an bestehenden Aktionen, die du aufrufen kannst. Dieser ist auf dem GitHub Marketplace verfügbar. Abbildung 1-2 zeigt ein Beispiel für diesen Bereich auf GitHub.

Das sind voll funktionsfähige Einheiten, aus denen du auswählen und in deinen eigenen Arbeitsabläufen verwenden kannst. Stell dir das so vor wie die Plug-ins oder andere Zusatzmodule, die Funktionen in anderen Anwendungen hinzufügen. Wie du in einem späteren Kapitel sehen wirst, kannst du den Actions Marketplace über die in GitHub integrierte Umgebung zur Erstellung eines Workflows erreichen. Hier kannst du ganz einfach nach Aktionen suchen, die dir Zeit und Mühe ersparen, statt sie selbst zu programmieren. (Wie du deine eigenen Aktionen erstellst, wird in Kapitel 11 behandelt).

Abbildung 1-2. Marktplatz für GitHub-Aktionen

Als Beispiele für die Funktionen, die du finden kannst, hat der Marketplace Kategorien für die Interaktion mit IDEs, die Arbeit an Lokalisierungsaufgaben, die mobile Entwicklung und sogar die Arbeit mit Projektmanagementaufgaben über Anwendungen wie JIRA eingerichtet. Die Actions auf dem Marketplace können von GitHub oder von anderen Quellen stammen, z. B. von Einzelpersonen, Organisationen oder Unternehmen, die Actions integrieren möchten.

Wenn du einen neuen Arbeitsablauf erstellst, ist der Marktplatz für Aktionen ein großartiger Ort, um bestehende Aktionen zu finden, die bereits das tun, was du brauchst, und dir so den Aufwand ersparen, die Funktionalität anderweitig zu programmieren. Und sie sind außerdem kostenlos. Du kannst sogar kostenlos mit GitHub Actions anfangen. Allerdings fallen bei bestimmten Nutzungsgraden Kosten an. Darauf gehe ich im nächsten Abschnitt genauer ein.

Welche Kosten sind damit verbunden?

Eine der ersten Fragen, die sich jeder Einzelne, jedes Team oder jede Organisation stellt, wenn sie über die Umstellung auf eine neue Technologie nachdenken, sind die Kosten. Bei GitHub Actions kann es sein, dass du dich einfach für die kostenlose Version qualifizierst. Wenn nicht, ist es wichtig, dass du zumindest ein grundlegendes Verständnis dafür hast, wie das kostenpflichtige Modell funktioniert, damit du nicht überrascht wirst.

Das freie Modell

GitHub Actions ist kostenlos, wenn eine oder beide der folgenden zwei Bedingungen erfüllt sind:

  • Die Repositories, die du mit Aktionen verwendest, sind öffentlich.
  • Die Systeme, auf denen du die Aktionen ausführst (die Runner), sind deine eigenen (und nicht die von GitHub bereitgestellten).

Das heißt, wenn du damit einverstanden bist, dass deine GitHub-Repositories von allen eingesehen werden können, oder wenn du die Systeme hosten kannst, die den Code in den Schritten des Workflows ausführen, kannst du die Technologie kostenlos nutzen.

GitHub erhebt keine Gebühren für die Nutzung von selbst gehosteten Runnern, aber du musst die Runner-Anwendung auf deinen eigenen Servern installieren und ausführen. Dies ist erforderlich, damit GitHub Actions mit deinen Servern kommunizieren kann, um deine Workflows auszuführen. (Runner und wie du deine eigenen erstellst, werden in Kapitel 5 behandelt).

Wenn das kostenlose Modell nicht zu deiner Arbeitsweise passt, wirst du zum kostenpflichtigen Modell wechseln.

Das bezahlte Modell

Private Repositories sind Repositories mit eingeschränktem Zugriff. GitHub-Kunden in Unternehmen nutzen dieses Modell häufig, indem sie entweder den Zugang auf der öffentlichen GitHub-Website einschränken oder eine interne oder cloudbasierte GitHub-Instanz nutzen, die nur für sie bestimmt ist.

Es gibt zwei Arten von Artikeln, für die du mit GitHub Actions bezahlst:

  • Speicherung: Mit Aktionen kannst du Artefakte und Pakete auf den Ressourcen von GitHub speichern. Ab einem bestimmten Punkt kostet dich die Speicherung von Artefakten und Paketen Geld.
  • Protokolle: Aktionen benötigen Bearbeitungszeit auf virtuellen Systemen.

Artefakte und Pakete

Artefakte sind Objekte, die du hochlädst oder durch deine Workflows auf GitHub erzeugst. GitHub-Pakete sind eine praktische Methode, um Dinge wie Container und Abhängigkeiten zugänglich zu machen.

Bei einem privaten Repository startest du mit einer bestimmten Menge an kostenloser Speicherung (für Artefakte, die während der Verarbeitung von Workflows hochgeladen werden) und Minuten auf Runnern. Wenn diese aufgebraucht sind, kannst du entweder mehr bezahlen und nutzen oder du wirst abgeschnitten, je nachdem, wie du bei GitHub bezahlst und welche Ausgabenlimits du eingestellt hast. (Auf Artefakte wird in Kapitel 7 näher eingegangen).

Wenn du einen regelmäßigen monatlichen Betrag bezahlst, ist nach dem Aufbrauchen des kostenlosen Speicherplatzes und der Minuten standardmäßig Schluss. Du kannst dann keine neuen Artefakte mehr erstellen und keine weiteren Bearbeitungen vornehmen.

Wenn du stattdessen nur eine Rechnung von GitHub für die Menge an Ressourcen erhältst, die du während eines Abrechnungszeitraums verbraucht hast, und diesen variablen Betrag jedes Mal bezahlst, kannst du standardmäßig unbegrenzt weitere Minuten und/oder Speicherplatz nutzen (und dafür bezahlen).

Standard-Ausgabenlimits

In der vorangegangenen Diskussion wurde auf dieStandard-Ausgabenlimits verwiesen. Bei GitHub kannst du diese Standard-Ausgabenlimits in den Einstellungen deines Kontos (Benutzer, Organisation oder Unternehmen) ändern, wenn du Zugriff und die entsprechende Berechtigung hast. Um sie für eine Organisation oder ein Unternehmen zu ändern, musst du Besitzer oder Rechnungsmanager sein.

Bei der Maschinennutzung auf einem von GitHub bereitgestellten System werden die Rechenkosten in Minuten gemessen, die du auf den Kufen verwendest. Die Kosten summieren sich, wenn du mehr Rechenleistung verbrauchst, werden aber jeden Monat auf 0 zurückgesetzt. Die Kosten für die Speicherung summieren sich, wenn du mehr Artefakte speicherst, werden aber nicht jeden Monat zurückgesetzt. Du zahlst also nur die Kosten für die Speicherung, solange du die Artefakte auf GitHub bereithältst.

Tabelle 1-1 aus der GitHub-Dokumentation zeigt die Aufschlüsselung der Freiminuten und der kostenlosen Speicherung, die du je nach Kontotyp pro Monat erhältst. Diese Angaben sind zum Zeitpunkt der Erstellung dieses Artikels aktuell und können sich noch ändern. Die neuesten Preisinformationen findest du in der offiziellen Dokumentation.

Tabelle 1-1. GitHub Actions Preispläne
Plan Speicherung Minuten (pro Monat)
GitHub Frei 500 MB 2,000
GitHub Pro 1 GB 3,000
GitHub Kostenlos für Organisationen 500 MB 2,000
GitHub-Team 2 GB 3,000
GitHub Enterprise Cloud 50 GB 50,000

Der Verbrauch der Speicherung wird für jeden Monat auf der Grundlage der stündlichen Nutzung während des Monats berechnet.

Verwendung Rundung

Für die Abrechnung wird die Nutzung der Speicherung auf das nächste Megabyte und die Nutzung der Minuten auf die nächste Minute aufgerundet.

Ein weiterer wichtiger Faktor, den du beachten solltest, ist, dass GitHub Actions mehr für Aufträge verlangt, die auf einem von GitHub bereitgestellten System ausgeführt werden, wenn für die Ausführung ein Windows- oder macOS-System erforderlich ist. In einem kostenpflichtigen Szenario erhöhen sich also die Kosten für die Nutzung eines dieser Systeme im Vergleich zu einem Linux-System und du zahlst einen Aufschlag, wie in Tabelle 1-2 dargestellt.

Tabelle 1-2. Kostenskalierung pro OS
Operationssystem Minutenmultiplikator
Linux 1
macOS 10
Windows 2

Tabelle 1-3 zeigt ein Beispiel für den Vergleich der Kosten pro Minute für einen Prozess, der auf verschiedenen Systemen läuft (aus der Dokumentation von GitHub).

Tabelle 1-3. Pro-Minute-Kosten für verschiedene Betriebssysteme
Operationssystem Minutentarif (USD)
Linux $0.008
macOS $0.08
Windows $0.016

Aktuelle Kosteninformationen

Die Informationen in den vorstehenden Tabellen sind zum Zeitpunkt der Erstellung dieses Artikels aktuell und können sich ändern. Die aktuellsten Informationen zu den Kosten von GitHub-Aktionen findest du in der GitHub-Dokumentation.

Der Preis, den du für die Nutzung zahlst, ist sicherlich ein Faktor, den du berücksichtigen solltest, wenn du über einen Wechsel zu GitHub Actions nachdenkst. Aber er sollte nicht der einzige sein. Im letzten Abschnitt dieses Kapitels gehe ich darauf ein, wie du entscheidest, wann ein Wechsel zu GitHub Actions sinnvoll ist.

Wann ist es sinnvoll, zu GitHub Actions zu wechseln?

Abgesehen vom Preis gibt es noch andere Faktoren, die bei der Umstellung auf und der Nutzung von GitHub Actions zu berücksichtigen sind. Hier sind ein paar, die hilfreich sein können.

Investition in GitHub

GitHub-Aktionen sind per Definition eng an das GitHub-Ökosystem gebunden. Sie können nur funktionieren, wenn sie über die GitHub-Engine ausgeführt werden. Jeder, der mit Actions arbeiten möchte, muss also mit GitHub als Schnittstelle und Umgebung vertraut sein und damit umgehen können.

Und wenn du deine eigenen Runner verwendest, um Workflows und Aktionen auszuführen, musst du damit einverstanden sein, dass die Runner-Anwendung auf deinen Systemen installiert wird.

Nutzung von öffentlichen Aktionen

Wie bereits erwähnt, unterhält GitHub Actions einen Marktplatz für beigetragene Actions. Wie bei jedem öffentlichen Ort, an dem du Komponenten herunterladen kannst, um sie einzubinden, musst du sicherstellen, dass du weißt, was diese Aktionen tun und dass sie deine Sicherheitsanforderungen erfüllen. Kurz gesagt: Die Verantwortung für die Eignung, den Zweck und die Sicherheit bei der Nutzung einer öffentlichen Aktion liegt bei dir.

Hilfreiche Sicherheitstipps

Kapitel 9 in diesem Buch behandelt die Sicherheit. Aber auch auf GitHub gibt es Tipps zur sicheren Verwendung von Aktionen. In der GitHub-Dokumentation findest du weitere Details.

Eigene Aktionen erstellen

Du hast die Flexibilität, deine eigenen Aktionen zu erstellen und zu verwenden. Es gibt verschiedene Arten, die ich in Kapitel 11 erkläre. Wenn du bereits auf andere Weise in die Erstellung von benutzerdefinierten Funktionen investiert hast, musst du dich mit der Aktionsstruktur und -syntax vertraut machen. Dann solltest du dir überlegen, wie du entweder zu mehr aktionsbasierten Ansätzen übergehen oder einen Workflow einrichten kannst, der deine bestehenden Funktionen aufruft, wenn dies möglich ist.(Kapitel 14 befasst sich mit Ansätzen für die Migration.)

Artefakt Management

Die Artefaktverwaltung von GitHub Actions ist praktisch für die schnelle und einfache Speicherung und Freigabe von Artefakten. Es ist jedoch kein Paketmanagementsystem wie GitHub Packages oder Artifactory. Es gibt eine eingebaute Aufbewahrungsfrist, nach der die Artefakte entfernt werden. Wenn dies für deine Bedürfnisse nicht geeignet ist, musst du einen anderen Weg finden, um Artefakte zu verwalten und deine Arbeitsabläufe damit zu verbinden.

Action Management

GitHub Actions bietet einen Rahmen für die Erstellung und Verwendung von Aktionen, um fast alles zu automatisieren. Wenn du in einem Unternehmen arbeitest, möchtest du vielleicht nicht, dass jeder Aktionen für gemeinsam genutzte Repositories erstellt und einsetzt. Wenn du dies ohne entsprechende Kontrollen zulässt, könnten sich Sicherheitslücken auftun. Die Kontrollen können darin bestehen, dass du sicherstellst, dass die verwendeten Aktionen genehmigt und verwaltbar sind. Außerdem sollte es einen regelmäßigen Aktualisierungsprozess geben, um sicherzustellen, dass alle öffentlichen Aktionen auf dem neuesten Stand sind und ihre Verwendung bei Bedarf überprüft wird.

Wenn Mitarbeiter/innen Aktionen erstellen und sie für eine breitere Nutzung freigeben, sollte es eine Art Codeüberprüfung und Standards geben. Kurz gesagt: Da Aktionen mit Code geschrieben werden, der auf GitHub-Repositories basiert, sollten dieselben bewährten Methoden gelten, die du auch bei anderen Repositories auf GitHub anwenden würdest.

Durchsetzung von Richtlinien für Aktionen

Unter findest du Informationen darüber, wie du Richtlinien innerhalb eines Unternehmens oder einer Organisation festlegst.

Generell hängt die Frage, wie viel du in GitHub Actions investierst und es nutzt, davon ab, inwieweit du bzw. deine Organisation oder dein Unternehmen von den Vorteilen der neuen Funktionalitäten profitieren möchtest, ob du bereits vorhandene Funktionen migrieren kannst und ob du dich wohl dabei fühlst, deinen Code und automation in dieser Umgebung zu verwalten.

Fazit

In diesem Kapitel habe ich GitHub Actions vorgestellt und einige grundlegende Informationen darüber gegeben, wozu die Plattform dient, welche Anwendungsfälle es gibt, welche Kosten anfallen und was du beim Umstieg auf die Plattform beachten solltest. GitHub Actions bietet ein umfassendes Framework zur Automatisierung der Inhalte, die du in GitHub verwaltest. Wenn du in das GitHub-Ökosystem investiert hast oder einen Wechsel dorthin erwägst, sind Workflows und Actions eine gute Option, um Automatisierung wie CI/CD zu implementieren, ohne auf eine andere Anwendung angewiesen zu sein. Wie bei jedem Framework kann die Automatisierung einfach oder komplex sein. Und obwohl die zugrunde liegende Engine von GitHub bereitgestellt wird, gibt es eine ständig wachsende Gemeinschaft von Nutzern, die fertige Aktionen und Workflows bereitstellen, auf die man zurückgreifen kann und die den Aufwand für die Einrichtung und Anpassung verringern.

Nachdem nun die Grundlagen von GitHub Actions erklärt wurden, werde ich im nächsten Kapitel tiefer eintauchen, damit du verstehst, wie Actions funktionieren.

Get GitHub-Aktionen lernen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.