Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 7 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,12 @@
![act-logo](https://raw.githubusercontent.com/wiki/nektos/act/img/logo-150.png)

# Overview

> "Think globally, `act` locally"

Run your [GitHub Actions](https://developer.github.com/actions/) locally! Why would you want to do this? Two reasons:

- **Fast Feedback** - Rather than having to commit/push every time you want to test out the changes you are making to your `.github/workflows/` files (or for any changes to embedded GitHub actions), you can use `act` to run the actions locally. The [environment variables](https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables) and [filesystem](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners#filesystems-on-github-hosted-runners) are all configured to match what GitHub provides.
- **Local Task Runner** - I love [make](<https://en.wikipedia.org/wiki/Make_(software)>). However, I also hate repeating myself. With `act`, you can use the GitHub Actions defined in your `.github/workflows/` to replace your `Makefile`!

> [!TIP]
> **Now Manage and Run Act Directly From VS Code!**<br/>
> Check out the [GitHub Local Actions](https://sanjulaganepola.github.io/github-local-actions-docs/) Visual Studio Code extension which allows you to leverage the power of `act` to run and test workflows locally without leaving your editor.

# How Does It Work?

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](https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables) and [filesystem](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#file-systems) are all configured to match what GitHub provides.

Let's see it in action with a [sample repo](https://github.com/cplee/github-actions-demo)!
> [!CAUTION]
> This is a derivative of [nektos/act](https://github.com/nektos/act) between version v0.2.71 from January 2025 and v0.2.72 February 2025

![Demo](https://raw.githubusercontent.com/wiki/nektos/act/quickstart/act-quickstart-2.gif)
- Support for macOS VMs using tart `-P tart://`
- `--use-new-action-cache` has been removed, the default clone mode of nektos/act has been removed
- CI tests are run in 6min compared to 17min on nektos/act
- Flags `--pull=false` and `--rebuild=false` are inverted to `--no-poll` and `--no-rebuild`

# Act User Guide

Expand All @@ -35,7 +22,7 @@ Want to contribute to act? Awesome! Check out the [contributing guidelines](CONT

## Manually building from source

- Install Go tools 1.23+ - (<https://golang.org/doc/install>)
- Install Go tools 1.24+ - (<https://golang.org/doc/install>)
- Clone this repo `git clone [email protected]:actions-oss/act-cli.git`
- Run unit tests with `make test`
- Build and install: `make install`