Aller au contenu principal

Act

Overview

Act, c'est le moyen de tester tes workflows GitHub Actions sans avoir à pousser sur GitHub à chaque fois que tu veux vérifier si ton YAML est valide. Tu parse tes fichiers .github/workflows/*.yml, Act crée des containers Docker pour chaque job, et ça tourne localement comme si tu étais sur GitHub, sauf que tu n'as pas besoin d'attendre que GitHub daigne exécuter ton workflow.

C'est pratique pour le développement local, le debugging de workflows qui refusent de passer, et tous les cas où tu préfères tester avant de polluer l'historique GitHub avec des commits de test. Act se distingue par sa simplicité, sa compatibilité avec les workflows GitHub Actions, et surtout par le fait que tu n'as plus besoin de dépendre de l'infrastructure GitHub pour savoir si ton pipeline est cassé.


Informations essentielles

PropriétéValeur
Site officielhttps://github.com/nektos/act
LicenceMIT
NationalitéInternational
TypeExécuteur local de workflows GitHub Actions
DéploiementInstallation binaire, Docker requis
DifficultéFacile à intermédiaire
TechnologiesGo

TL;DR

Act, c'est pour ceux qui en ont marre de pousser sur GitHub à chaque fois qu'ils veulent tester un workflow. Tu testes localement, tu débogues, tu itères, et quand c'est bon, tu pushes. Simple comme bonjour.

Points clés à retenir :

  • Exécution locale de workflows GitHub Actions, sans dépendre du cloud
  • Compatibilité avec les workflows .github/workflows/*.yml (enfin, la plupart)
  • Exécution dans des containers Docker, comme sur GitHub
  • Support de la plupart des actions GitHub (pas toutes, mais l'essentiel)
  • Testing et debugging local sans polluer ton historique Git

Compatibilité et intégrations

  • Compatible avec les workflows GitHub Actions
  • Utilise Docker pour l'isolation
  • Support de la plupart des actions GitHub (marketplace)
  • Compatible Linux, macOS, Windows (WSL)
  • Intégration avec les outils de développement locaux

Avantages

  • Tu testes localement sans polluer GitHub avec des commits de test
  • Le débogage est plus simple : pas besoin d'attendre que GitHub exécute ton workflow
  • Compatibilité correcte avec les workflows GitHub Actions (la plupart passent)
  • Exécution rapide et locale, pas de file d'attente
  • Pas de dépendance à l'infrastructure cloud, tu contrôles tout
  • Open-source (MIT), tu peux voir ce qui se passe sous le capot

Limites

  • Toutes les actions GitHub ne sont pas supportées, surtout les plus récentes ou les custom
  • Certaines fonctionnalités GitHub Actions manquent (secrets, environment, etc.) - c'est le prix de la simplicité
  • Il te faut Docker installé, évidemment
  • Il y a des différences subtiles avec l'exécution réelle sur GitHub Actions, donc teste quand même sur GitHub avant de partir en prod
  • La communauté est plus petite que GitHub Actions officiel, donc moins de ressources et de support

Ressources