# Run Github Action Locally `act` is a tool to run github action locally. By using `act`, we can get feedback from CI faster. No need to `commit/push` any changes to github for checking your code is fulfilling the CI requirements or not. ## Installation ### MacOS 1. Using homebrew to install `act` ```bash= brew install act ``` 2. Install Docker `act` depends on docker to run github workflows. Follow the steps in [Docker Docs for how to install Docker Desktop for Mac](https://docs.docker.com/desktop/mac/install/). ### Other Operating Systems Please refer to [here](https://github.com/nektos/act#installation) to install it on your operating systems. ## Running Following is the command to run `act`. ```bash= act \ --container-architecture <architecture-name> \ -P <platform>=<image> \ -W ./.github/workflows/<workflow-name>.yml \ --secret-file <file path> \ --rm ``` Optional Flags: * **`--container-architecture`** Architecture that should be used to run containers. If not specified, will use host default architecture. For MacOS M1 chip, you must specify `linux/amd64`. * **-P** Custom `image` to use for each platform. `<platform>` is the OS you assigned in workflows, like `ubuntu-latest`. `<image>` is the image you want to run a container for github action. Notice that `MacOS` and `Windows` are not supported so far. * **-W** Path of the workflow. Will run all workflows if not specified. * **`--secret-file`** Path of the file with a list of secrets to read from. Default path will be `.secrets`. * Secrets file format ``` <SECRET_KEY_NAME1>=<SECRET_KEY_VALUE1> <SECRET_KEY_NAME2>=<SECRET_KEY_VALUE2> ``` * **`--rm`** Remove the container `act` built just before the exit. #### Sample command ```bash= act \ --container-architecture linux/amd64 \ -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest \ -W ./.github/workflows/quality_check.yml \ --secret-file ./config/.secrets \ --rm ``` For more information, please refer to reference 1. ## Reference [1] [nektos/act](https://github.com/nektos/act)