act für die lokale Ausführung von GitHub Actions#

act ist ein Tool von Nektos, das eine praktische Möglichkeit bietet, GitHub Actions lokal mit Docker auszuführen. act bietet eine schnelle Möglichkeit, Ihre Änderungen auf der CI lokal zu validieren, ohne Ihre Änderungen an den Workflows committen/pushen zu müssen, um sie auszulösen und zu validieren. Es führt zu schnellem Feedback und seine Kompatibilität als lokaler Task-Runner zur Validierung all unserer CI-Jobs macht es zu einem praktischen Werkzeug.

act kann lokal mit Homebrew, Chocolatey oder sogar einem einfachen BASH-Skript eingerichtet werden. Um es mit dem BASH-Skript einzurichten, geben Sie einfach den folgenden Befehl in Ihr Terminal ein

curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

Mit Homebrew können Sie es über Folgendes einrichten: brew install act.

Der nächste Schritt ist die Definition des benutzerdefinierten Images, das wir zur lokalen Ausführung unserer Actions verwenden können. act bietet ein kleines, mittleres und großes Docker-Image für den Ubuntu GitHub Runner. act unterstützt derzeit keine Windows- und macOS-Images.

Wenn Sie act zum ersten Mal ausführen, können Sie das Image definieren, das wir für unsere lokalen CI-Läufe verwenden möchten. Die Konfiguration wird in der Datei ~/.actrc gespeichert.

In einem GitHub-Repository findet act beim ersten Ausführen ./.github/workflows und alle vorhandenen Workflows. Um die als Teil der GitHub Actions CI aufgeführten Jobs auszuchecken, geben Sie den folgenden Befehl ein

act -l

Es listet alle Jobs auf und Sie können die bestimmten Jobs auswählen, die Sie ausführen möchten. Wenn Sie einen bestimmten Job ausführen möchten, geben Sie den folgenden Befehl ein

act -j <JOB_NAME>

Um den Job im Trockenlauf auszuführen, geben Sie den folgenden Befehl ein

act -n

Um den Job mit ausführlicher Protokollierung auszuführen, geben Sie den folgenden Befehl ein

act -v

Um die Container in act zur Aufrechterhaltung des Zustands wiederzuverwenden, geben Sie den folgenden Befehl ein

act -j <JOB_NAME> --bind --reuse

Es wird empfohlen, GitHub-spezifische Ereignisse wie github.repository oder github.event.head_commit.message auszukommentieren. Wenn Sie Umgebungsvariablen in Ihrer Action verwenden, wird empfohlen, eine my.secrets-Datei zu haben und diese Umgebungsvariablen an act zu übergeben, indem Sie den folgenden Befehl eingeben

act --secret-file my.secrets

Wenn die Umgebungsvariablen über eine .env-Datei bereitgestellt werden, verwenden Sie den folgenden Befehl

act --env-file my.env