cli Gratis Activo

act

Para probar y depurar workflows de GitHub Actions en tu máquina sin hacer commit y push continuos.

Herramienta de línea de comandos para ejecutar tus workflows de GitHub Actions en local.

Notas y contexto

Qué es

act es una herramienta de línea de comandos, escrita en Go y mantenida por el proyecto nektos, que ejecuta tus workflows de GitHub Actions directamente en tu máquina. Lee los ficheros de .github/workflows/, usa la API de Docker para descargar o construir las imágenes necesarias y orquesta los contenedores reproduciendo el entorno (variables, sistema de ficheros) que ofrece GitHub. Es software libre con licencia MIT.

Para qué sirve

  • Probar cambios en un workflow de CI/CD en local antes de subirlos al repositorio.
  • Obtener feedback rápido sin tener que hacer commit y push una y otra vez para depurar.
  • Usar tus GitHub Actions como ejecutor de tareas local, en lugar de un Makefile.
  • Validar la sintaxis y el comportamiento de jobs y steps antes de que fallen en GitHub.

Cuándo usarlo

Resulta ideal cuando iteras sobre la configuración de GitHub Actions y el ciclo de commit, push y espera del runner se vuelve lento y frustrante. Requiere Docker en marcha, ya que cada acción se ejecuta dentro de un contenedor. Si no usas GitHub Actions o prefieres una herramienta de tareas independiente del CI, alternativas como just, Task o un Makefile clásico encajan mejor.

Ejemplo

Instalación con Homebrew y uso básico:

brew install act

# Ejecutar el workflow asociado al evento push (por defecto)
act

# Simular un evento concreto
act pull_request

# Listar los jobs disponibles sin ejecutarlos
act -l

# Ejecutar un job concreto
act -j build

También está disponible vía Chocolatey, WinGet, Scoop, Nix, MacPorts, la extensión de GitHub CLI y otros gestores.

Puntos clave

  • Reproduce el entorno de GitHub Actions en local apoyándose en contenedores Docker.
  • Soporta simular distintos eventos (push, pull_request, etc.) y ejecutar jobs individuales.
  • Permite encadenar workflows como ejecutor de tareas reutilizando definiciones que ya tienes.

Ten en cuenta

Depende de Docker: sin un demonio de contenedores en marcha no funciona. Las imágenes que replican los runners de GitHub son aproximaciones, por lo que un workflow puede comportarse de forma ligeramente distinta a la del entorno real (versiones de herramientas preinstaladas, secretos, servicios externos). Algunas acciones que dependen de la infraestructura propia de GitHub pueden no funcionar igual en local.

Volver al directorio
Volver al directorio