Running GitHub Actions Locally with act


Bicycle

GitHub Actions ist eine mächtige Automatisierungsplattform, die es Entwicklern ermöglicht, CI/CD-Pipelines (Continuous Integration/Continuous Deployment) direkt innerhalb ihres GitHub-Repositories zu erstellen und zu verwalten. Während das Ausführen von Workflows direkt auf GitHub viele Vorteile bietet, gibt es auch Situationen, in denen es nützlich ist, diese Workflows lokal zu testen und zu debuggen. Hier kommt act ins Spiel.

Was ist act?

act ist ein Open-Source-Tool, das es Entwicklern ermöglicht, GitHub Actions Workflows lokal auf ihrem Computer auszuführen. Dies bietet den Vorteil, dass man Änderungen schnell testen kann, ohne jedes Mal Commits und Pushes an ein Remote-Repository senden zu müssen. Es simuliert die GitHub Actions Umgebung durch die Verwendung von Docker-Containern.

Installation von act

Um act zu verwenden, müssen Sie Docker auf Ihrem Computer installiert haben. Danach können Sie act über Homebrew, npm oder direkt von der GitHub-Release-Seite installieren.

  • Homebrew (macOS und Linux):

    1brew install act
    
  • npm (Node.js):

    1npm install -g act
    
  • Direkt von GitHub: Gehen Sie zur Release-Seite von act, laden Sie die passende Version für Ihr Betriebssystem herunter und installieren Sie sie.

Einrichten und Verwenden von act

Sobald act installiert ist, können Sie es in einem beliebigen GitHub-Repository verwenden, das GitHub Actions Workflows enthält. Hier sind die grundlegenden Schritte:

Navigieren Sie in das Repository und führen Sie einen Workflow aus:

1cd /path/to/your/repository
2act

Dieser Befehl sucht nach einem push-Event in Ihrer .github/workflows-Konfiguration und führt den entsprechenden Workflow aus.

Spezifischen Job oder Event ausführen:

Sie können auch einen spezifischen Job oder ein spezifisches Event ausführen. Beispielsweise, um ein pull_request-Event auszuführen:

1act pull_request

Oder um einen spezifischen Job auszuführen:

1act -j job-name

Oder aber auch einen spezifischen Workflow ausführen:

1act --workflows .github/workflows/my-workflow.yml

Anpassung von act

Sie können act weiter anpassen, um besser zu Ihren Anforderungen zu passen:

Konfiguration durch actrc:

Sie können eine .actrc-Datei in Ihrem Home-Verzeichnis oder im Root-Verzeichnis Ihres Repositories erstellen, um Standardoptionen für act zu konfigurieren.

1# Beispiel .actrc
2-P ubuntu-latest=catthehacker/ubuntu:act-latest

Umgebungsvariablen setzen:

Oftmals müssen Sie Umgebungsvariablen setzen, die normalerweise in GitHub Secrets oder Repository-Einstellungen definiert sind. Dies können Sie mit dem -s Flag tun:

1act --secret MY_SECRET=mysecretvalue

Verwenden eines anderen Docker-Images:

Standardmäßig verwendet act ein generisches Docker-Image für die Ausführung der Workflows. Sie können jedoch ein spezifisches Image verwenden, um eine Umgebung zu simulieren, die näher an Ihrer Produktionsumgebung liegt.

1act --platform ubuntu-latest=catthehacker/ubuntu:act-latest

Vorteile der lokalen Ausführung von GitHub Actions mit act

  • Schnelles Debugging: Sie können schnell und einfach Änderungen an Ihren Workflows testen, ohne diese jedes Mal in ein Remote-Repository pushen zu müssen.

  • Offline-Nutzung: Sie können Workflows auch ohne Internetverbindung ausführen.

  • Konsistenz: Sicherstellen, dass Ihre Workflows auf verschiedenen Entwicklungsumgebungen konsistent ausgeführt werden.

Fazit

Act ist ein wertvolles Tool für Entwickler, die regelmäßig mit GitHub Actions arbeiten und ihre Workflows lokal testen und debuggen möchten. Es bietet eine schnelle, effiziente und flexible Möglichkeit, die Entwicklung und Wartung von CI/CD-Pipelines zu verbessern. Indem Sie act in Ihren Entwicklungsprozess integrieren, können Sie sicherstellen, dass Ihre Automatisierungsworkflows reibungslos und fehlerfrei funktionieren, bevor sie in die Produktionsumgebung übergehen.

Zurück Unsere Trainings entdecken

Wir sind für Sie da

Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.

Hier kontaktieren