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