Run GitHub Actions locally in your terminal with or without Docker/Podman

wrkflw is a powerful command-line tool for validating and executing GitHub Actions workflows locally, without requiring a full GitHub environment. It helps developers test their workflows directly on their machines before pushing changes to GitHub.

Features

  • TUI Interface: A full-featured terminal user interface for managing and monitoring workflow executions
  • Validate Workflow Files: Check for syntax errors and common mistakes in GitHub Actions workflow files with proper exit codes for CI/CD integration
  • Execute Workflows Locally: Run workflows directly on your machine using Docker or Podman containers
  • Multiple Container Runtimes: Support for Docker, Podman, and emulation mode for maximum flexibility
  • Job Dependency Resolution: Automatically determines the correct execution order based on job dependencies
  • Container Integration: Execute workflow steps in isolated containers with proper environment setup
  • GitHub Context: Provides GitHub-like environment variables and workflow commands
  • Rootless Execution: Podman support enables running containers without root privileges
  • Action Support: Supports various GitHub Actions types:
    • Docker container actions
    • JavaScript actions
    • Composite actions
    • Local actions
  • Special Action Handling: Native handling for commonly used actions like actions/checkout
  • Reusable Workflows (Caller Jobs): Execute jobs that call reusable workflows via jobs.<id>.uses (local path or owner/repo/path@ref)
  • Output Capturing: View logs, step outputs, and execution details
  • Parallel Job Execution: Runs independent jobs in parallel for faster workflow execution
  • Trigger Workflows Remotely: Manually trigger workflow runs on GitHub or GitLab

Check the project out at: GitHub - bahdotsh/wrkflw: Validate and Run GitHub Actions locally.

2 Likes

How does it compare to https://github.com/nektos/act

1 Like

wrkflw started as a simple side project I did to scratch an itch of not wanting to push every change I make to a workflow to GitHub for validation. Act has this dependency on Docker, even just for validating the workflow. And I wanted something simpler without any external dependencies for workflow validation. You can use it with Docker and Podman, but there is no dependency on them!

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.