菜单

快速入门

相关源文件

本指南逐步介绍了如何安装、配置和使用 act 工具在本地运行 GitHub Actions 工作流。有关架构和组件的更详细信息,请参阅架构概览

安装

在您的系统上安装 act 有几种方法

使用包管理器

Homebrew (macOS 或 Linux)

Chocolatey (Windows)

二进制安装

从 GitHub 发布页面下载最新版本并将其放置在您的 PATH 中。

从源代码构建

如果您想从源代码构建 act

验证安装

要验证安装,请运行

这应该显示当前版本的 act(例如,0.2.76)。

来源: VERSION Makefile76-80

基本用法

运行您的第一个工作流

要在本地以默认配置运行 GitHub Actions 工作流

默认情况下,act 将运行由 push 事件触发的所有工作流。如果您的仓库只包含一种事件类型,act 将使用该事件作为默认值。

Workflow Execution Flow:

1. act scans .github/workflows/ directory
2. Determines which workflows to run based on the event
3. Creates and executes a plan of jobs and steps
4. Runs each job and step in Docker containers
5. Displays the output from each step

来源: cmd/root.go56-132 README.md7-10 pkg/runner/runner.go16-19

首次运行配置

当您首次运行 act 时,它将提示您选择一个默认的 Docker 镜像大小

  • :约 17GB 下载 + 53.1GB 存储,包含完整的 GitHub Runner 快照
  • :约 500MB,包含启动 actions 所需的基本工具
  • :<200MB,仅包含启动 actions 所需的 NodeJS

此选择将保存到您的配置文件 (~/.config/act/actrc) 中,以供将来使用。

来源: cmd/root.go706-747

工作流执行流程

下图说明了 act 如何处理和执行 GitHub Actions 工作流

来源: pkg/runner/runner.go107-208 cmd/root.go387-704

命令行选项

以下是一些常用的命令行选项

选项描述
-e, --eventpath事件 JSON 文件的路径,用于触发工作流
-W, --workflows工作流文件的路径(默认:./.github/workflows/
-j, --job运行特定的作业 ID
-l, --list列出可运行的工作流
-g, --graph绘制工作流执行图
-v, --verbose启用详细日志记录
-s, --secret将 Secrets 添加到容器环境
-w, --watch监视更改并重新运行工作流
-P, --platform指定要使用的平台镜像
-b, --bind将工作目录绑定到容器(默认:复制)

来源: cmd/root.go67-127

运行特定事件

要运行特定事件的工作流

这将运行所有由 pull_request 事件触发的工作流。

运行特定作业

要运行工作流中的特定作业

这将只运行 ID 为 build 的作业。

来源: cmd/root.go478-498

管理 Secrets 和环境变量

使用 Secrets

您可以通过以下几种方式将 secrets 传递给工作流

secret 文件应包含 key=value 格式的 secrets,每行一个。

环境变量

同样,您可以设置环境变量

来源: cmd/root.go76-78 cmd/root.go341-367

使用 Docker 镜像

act 使用 Docker 运行 actions。您可以为不同的平台指定自定义镜像

Docker 容器架构

下图显示了 act 如何与 Docker 交互

来源: cmd/root.go80-82 README.md16-18

配置文件

act 支持配置文件来存储默认选项。配置文件按以下顺序在以下位置搜索

  1. ~/.config/act/actrc (XDG 配置路径)
  2. ~/.actrc (主目录)
  3. .actrc (当前目录)

一个典型的配置文件可能如下所示

-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04

来源: cmd/root.go134-150 cmd/root.go275-298

高级特性

矩阵作业

act 支持矩阵作业,允许您使用不同配置组合运行工作流

来源: pkg/runner/testdata/matrix/push.yml12-15 cmd/root.go96 pkg/runner/runner.go157-196

监视更改

您可以将 act 设置为监视您的仓库更改并自动运行工作流

这在开发期间非常有用,可以在您修改工作流文件时立即获得反馈。

来源: cmd/root.go68 cmd/root.go749-796

产物与缓存管理

act 支持 Artifacts 和缓存

要启用 Artifact 支持

来源: cmd/root.go115-117 cmd/root.go669-680

故障排除

生成错误报告

如果您遇到问题,可以生成详细的错误报告

这将输出系统信息、Docker 配置以及其他有助于排查问题的详细信息。

来源: cmd/root.go164-251

常见问题

  1. Docker 连接问题

    • 确保 Docker 正在运行
    • 检查 Docker 权限
    • 验证 Docker socket 路径
  2. 镜像问题

    • 对于 Apple M 系列芯片,您可能需要指定架构
  3. 未找到工作流

    • 使用 act -l 列出可用工作流
    • 使用 -W 检查您的工作流文件路径

来源: cmd/root.go413-420

下一步

既然您已经熟悉了 act 的基本用法,您可能想进一步探索