1. Slides

RevealJs Slides can be found here

2. Übersicht

Dieses Projekt wurde im Rahmen einer Präsentation über GitHub Actions entwickelt und enthält drei von mir erstellte GitHub Action-Skripte sowie Erläuterungen zu deren Funktionsweise und Einsatz.

2.1. Enthaltene Skripte

  • Build

    • Dieses Skript erstellt ein Docker-Image aus einem kleinen Maven-Java-Projekt und pusht das fertige Image in die Container Registry "ghcr.io".

  • Deploy

    • Hier wird das zuvor erstellte Image in einer Kubernetes-Umgebung aktualisiert.Die Bereitstellung erfolgt mittels kubectl und einer in den GitHub Secrets gespeicherten kubectl-Konfigurationsdatei.

  • Release Artifacts

    • Dieses Skript erstellt ein Prerelease auf GitHub.Dabei werden alle Commits seit dem letzten Release zusammengefasst und mit den Commit-Nachrichten sowie dem .jar-Artefakt der Maven-Java-Anwendung veröffentlicht.

2.2. GitHub Actions Pipeline des Projektes

jLBBRi8m4BpxAqQ fuSU4KByYh4tmSMFrDu5eOf BoQXLLHHUkd5zixEoBDZRokRmXA32jGpEAFuOSzmlf1bdvDAsH46puN6Z0y5z3uGzCkREHeDKs6l17MPU7edFZYDzLfsabWscyOOzfNAaSfD3hmB2Srdm0oK63R7qGTQOAEn1pCiCQRA2q2FKlVDjylsG0M51b vdFMDTVaovcWC Vp8MVVwBzwcI 7ZjKPVSdpcib3CJDqSLw1iGvOVUKwiHQOt LYoa dLBiesf0lTvkuVA X4frP6pyW9qVYarRtTNQdtiUQzOTDORMdLBta xA0hJVWy3Apc3uIJgQXYBTNQIz3g3 B9 tS2MqfEOlW4

2.3. Getting Started

3. Gebrauch von GitHub Actions

GitHub Actions ist ein CI/CD-Tool, das automatisierte Workflows direkt in GitHub ermöglicht, um Entwicklungsprozesse wie Tests, Builds und Bereitstellungen zu beschleunigen und zu zentralisieren. Ohne GitHub Actions sind diese Prozesse oft manuell und fehleranfälliger, was mehr Zeit und Ressourcen beansprucht.

4. Was ist CI/CD?

ci cd cd atlassian

4.1. Continuous Integration (CI)

Entwickler integrieren häufig ihre Änderungen in den Hauptzweig, wodurch Builds und Tests automatisch laufen. So werden Integrationsprobleme frühzeitig vermieden.

4.2. Continuous Delivery (CD)

Auf CI aufbauend, stellt CD sicher, dass alle Änderungen nach dem Build automatisch in eine Test- oder Produktionsumgebung gelangen und bei Bedarf jederzeit veröffentlicht werden können.

4.3. Continuous Deployment

Jede Änderung, die alle Tests besteht, wird ohne menschliches Eingreifen direkt für die Nutzer bereitgestellt, was schnelle Feedback-Schleifen ermöglicht.

4.4. CI/CD Pipeline

cicd pipeline

5. Alternativen

  • Azure Pipelines

  • Jenkins

  • Circle CI

5.1. Kriterienkatalog: GitHub Actions vs. Jenkins, Azure Pipelines und CircleCI

criteria catalog

6. GitHub Actions Skripte

7. Quellen