Stop Pushing to Test Your Workflows
act runs GitHub Actions locally using Docker. Test your CI/CD pipeline in seconds instead of pushing and waiting.
Install
# macOS
brew install act
# Linux
curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
Run Workflows
# Run default workflow
act
# Run specific event
act push
act pull_request
# Run specific job
act -j test
act -j build
# List all workflows
act -l
How It Works
act reads your .github/workflows/ YAML files and runs them in Docker containers. Same environment as GitHub, but on your machine.
Pass Secrets
# From file
act --secret-file .secrets
# Inline
act -s MY_TOKEN=abc123
# From environment
act -s MY_TOKEN
Use Cases
- Debug failing CI — no more commit-push-wait-check cycles
- Test new workflows before pushing
- Run workflows offline
- Speed up development — local runs are faster than cloud
- Test matrix builds locally
Limitations
- Some GitHub-hosted runners have tools not in Docker images
- Services (like postgres) need extra Docker setup
- GitHub-specific features (OIDC, caching) may not work
But for 90% of workflows, it just works.
More from me: 10 Dev Tools I Use Daily | 77 Scrapers on a Schedule | 150+ Free APIs
Top comments (0)