fotogestoeber - Fotolia
GitHub Actions vereint Continuous Integration und Delivery
GitHub hat seine Workflow-Automation-Plattform Actions um Continuous Integration und Continuous Delivery erweitert. Was die Erweiterung für Entwickler bedeutet.
Die Ergänzung des Workflow-Automatisierungs-Tools GitHub Actions um Continuous Integration (CI) und Continuous Delivery (CD) erweitert die Möglichkeiten der Plattform deutlich.
Die Beta-Version von GitHub Actions, die im Oktober 2018 vorgestellt wurde, sorgte bei Entwicklern für Spekulationen über die zukünftige CI/CD-Unterstützung. Aufgrund der offiziellen Ergänzung von Continuous Integration und Continuous Delivery müssen Entwickler GitHub nicht mehr verlassen, um CI/CD-Workflows zu automatisieren. GitHub bietet damit Funktionen für die Automatisierung des Softwarelebenszyklus.
„Dies ist kein einzigartiger Ansatz. Die Anbieter gehen bei CI/CD aber unterschiedlich vor“, sagt Thomas Murphy, Analyst bei Gartner. „Der Fokus auf verteilte Teams bei GitHub ermöglicht es Entwicklern, mit einer Vielzahl von Collaboration Tools zu arbeiten und auf Anfragen heraus zu entwickeln.“
Andere, wie Atlassian, nähern sich dem Problem mit einem „Better-Together“-Fokus, bei dem das CI/CD-System Produkte wie Jira und Trello ergänzt. Sie alle entwickeln sich gemeinsam. In der Zwischenzeit geht GitLab noch einen Schritt weiter und bietet ein integriertes Produkt an.
„[GitHub] hat die Position: Wenn GitHub Ihr Repository ist, ist Actions die beste Lösung“, erklärt Murphy. Ebenso sollten Entwickler, die Azure Repositorys verwenden, Azure Pipelines als CI/CD-Service verwenden. „Das gilt auch, wenn sie andere Repositorys verwenden, da Azure Pipelines viele Source Management Tools unterstützt“, ergänzt er. GitHub Actions ist aber in erste Linie für GitHub gedacht.
Durch die CI/CD-Unterstützung rückt GitHub jedoch in angrenzende Märkte vor, was wahrscheinlich Auswirkungen auf Wettbewerber, Partner und Anwender hat. Atlassian zum Beispiel hat ein eigenes CI/CD-Angebot mit Bitbucket Pipelines. Das Atlassian-System ist laut Murphy jedoch stärker auf Anbieter ausgerichtet, die Pipes entwickeln, welche sich an ihre Pipelines anschließen lassen.
Auch andere im CI/CD-Bereich spüren einen gewissen Druck. „GitHub muss jetzt das Ökosystem ausbalancieren, indem es seine eigenen Funktionen bereitstellt, aber auch genügend Platz für die Konkurrenz bietet“, sagt James Governor, Analyst bei RedMonk.
„Es gibt viele Tools, die eine einzige Aufgabe erfüllen, und GitHub Actions wird diese Tools stören“, sagt Dan Garfield, Chief Technology Evangelist bei Codefresh, einem GitHub-Partner in Mountain View, Kalifornien, der eine CI/CD-Plattform für Docker und Kubernetes anbietet.
„In der Continuous-Delivery-Ära sollte man nach Anbietern suchen, die ereignisbasierte Workflow-Funktionalitäten in Anwendungsplattformen integrieren, wie zum Beispiel eine Benutzeroberfläche, die ein Ereignis auslöst, das auf einem Support-Ticket basiert. Das reduziert die Notwendigkeit, Code zu schreiben und Geschäftsprozesse zu automatisieren“, sagt Charlotte Dunlap, Analystin bei GlobalData.
GitHub Actions erweitert Reichweite für Entwickler
„GitHub Actions ermöglicht es Entwicklern, Workflows auf der Grundlage von Ereignissen zu organisieren“, schreibt Nat Friedman, CEO von GitHub, in einem Blogbeitrag zum Thema. Insgesamt soll es Entwicklern helfen, sich auf das Wesentliche zu konzentrieren, damit sie sich nicht um wiederholende Aufgaben kümmern müssen, die automatisiert werden können, zum Beispiel das Testen von Problemen oder das Begrüßen neuer Mitarbeiter im Repository.
GitHub hostet Projekte, die in fast jeder existierenden Programmiersprache geschrieben wurden, so dass GitHub Actions und die integrierten CI/CD-Features auf jedem Betriebssystem, jeder Sprache oder jedem Framework funktioniert, einschließlich Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android und iOS.
„GitHub unterstützt mit Actions neben Linux und Containern auch macOS und Windows, so dass Entwickler auf diesen Betriebssystemen sowie auf ARM-Hardware und Raspberry-Pi-Computern aufbauen können“, sagt Jeremy Epling, Senior Director of Product Management bei GitHub.
GitHub Actions unterstützt ebenfalls Matrix Builds, mit denen Entwickler mehrere Versionen ihrer Projekte parallel testen können, auch mit unterschiedlichen Versionen von Laufzeiten. Zum Beispiel kann ein Entwickler Projekte testen, die in den Versionen 8, 10 und 12 von Node.js und unter Linux, macOS und Windows erstellt wurden.
Das funktioniert laut Epling für neun Builds gleichzeitig, was die Produktivität erhöht. In der Vergangenheit unterstützte GitHub nur Container. Mittlerweile können Entwickler eine Action auch in JavaScript schreiben. Eine Action ist Code, der bearbeitet, wiederverwendet, freigegeben und geteilt werden kann. Benutzer können Actions mischen, um kreative neue Workflows zu erstellen.
Darüber hinaus unterstützt GitHub Actions jetzt Live-Logs für CI/CD, um Entwicklern Informationen über den Fortschritt ihrer Builds während der Ausführung zu liefern. Auf der Actions-Konsole können Entwickler alle verschiedenen Jobs einsehen, die in einem Workflow ausgeführt werden. Benutzer wissen damit unmittelbar, wann ein Test fehlschlägt oder ein Build erfolgreich ist.
Entwickler wollen Wahl bei CI/CD
Die Wahlfreiheit für Entwickler ist der Schlüssel für den Erfolg von GitHub mit seinen Open-Source-Wurzeln. Auch wenn GitHub Actions die Forderungen der Entwickler nach integrierter CI/CD-Unterstützung erfüllt, ermöglicht es ihnen die Nutzung von Partnersystemen.
Der GitHub Marketplace bietet CI/CD-Tools und andere virtuelle Automatisierungs-Tools, die Entwickler über ihren gesamten Entwicklungszyklus hinweg nutzen können. Und Actions ermöglicht es Entwicklern, diese verschiedenen Tools und Dienste miteinander zu verknüpfen, um maßgeschneiderte Workflows zu erstellen.
„Bei GitHub geht es um die Community“, sagt Murphy. Eine Action ist nicht nur etwas, das ein Anbieter erstellt, sondern etwas, das eine Community aufbauen oder pflegen kann. Dies ist von entscheidender Bedeutung, da viele der Teile, die Entwickler in ihre Builds einbinden, Open Source sind, zum Beispiel Selenium oder SonarQube für Codequalitätstests.
„Das bedeutet auch, dass ich nicht durch das begrenzt bin, was ein Anbieter als wirtschaftlich rentabel einschätzt“, sagt Murphy.
Die GitHub Actions Beta ist kostenlos. Die Technologie wird außerdem für öffentliche Repositorys kostenlos sein. Die allgemeine Verfügbarkeit ist für den 13. November geplant. Zu diesem Zeitpunkt wird GitHub Actions eine Pay-as-you-go-Preisgestaltung haben.