I recently came across act, a Docker-based tool that enables developers to run GitHub actions on their local machines.
When you run
act
it reads in your GitHub Actions from.github/workflows/
and determines the set of actions that need to be run. It uses the Docker API to either pull or build the necessary images, as defined in your workflow files and finally determines the execution path based on the dependencies that were defined. Once it has the execution path, it then uses the Docker API to run containers for each action based on the images prepared earlier. The environment variables] and filesystem are all configured to match what GitHub provides.
For me, it’s the best of both worlds: a robust ecosystem due to the popularity of GitHub Actions, paired with the flexibility of using it on your local machine. While traditional CI/CD tasks come to mind, maintainer Casey Lee suggests that GitHub Actions can effectively replace many Makefile
commands used for task automation.