This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
EAS Workflows 简介
编辑页面
EAS Workflows 是一项用于自动化 React Native 和 Expo 应用的构建、更新、提交和测试的 CI/CD 服务。
EAS Workflows 是 EAS(Expo Application Services)提供的一项 CI/CD 服务,用于自动化重复任务,例如构建 Android 和 iOS 二进制文件、发布空中更新、提交到应用商店、运行 E2E 测试以及将 Web 应用部署到 EAS Hosting。
EAS Workflows 运行在托管的云环境中,提供专为移动应用开发设计的预打包任务类型。当你的 EAS 项目关联到 GitHub 后,团队可以通过 GitHub 事件(push、pull request、labels)或计划(cron)触发工作流,也可以通过 EAS CLI 手动运行。

了解如何自动化每个应用开发团队都必须处理的一些最常见流程:创建开发构建、发布预览更新,以及部署到生产环境。
快速开始
下面的eas命令需要 EAS CLI。有关更多信息,请参阅如何安装 EAS CLI。
要创建您的第一个工作流,请运行以下命令并按照提示操作:
- eas workflow:create开始使用
工作流定义为位于项目根目录下 .eas/workflows/ 目录中的 YAML 文件。每个文件都指定一个 name、可选的触发器(on),以及一个或多个在云端运行的 jobs。开始使用指南将带你了解先决条件以及你的第一次工作流运行:
设置你的项目,并使用工作流创建开发构建。
面向 AI 代理的 Expo Skills
如果你使用 AI 代理,请安装 Expo Skills,教会它如何编写和调试工作流 YAML 文件:
Helps understand and write EAS workflow YAML files for Expo projects.
主要功能
- 预打包任务:可直接使用的任务,用于构建、提交和更新你的应用,运行 Maestro E2E 测试,发送 Slack 消息等。自定义任务可运行你需要的任何命令。
- 灵活的触发器:可在 GitHub 事件(推送、拉取请求、标签、分支或标签删除)、cron 计划、App Store Connect 事件上运行工作流,也可以使用
eas workflow:run手动运行,或通过 REST API 触发。 - 无需管理基础设施:任务运行在 EAS 托管的 macOS 和 Linux 工作节点上,因此你无需维护 CI 服务器或配置 Android Studio 和 Xcode。
- 一切尽在一个仪表盘:构建、更新、测试结果、制品和日志都会显示在 expo.dev 上。
- 更快的发布:组合使用
fingerprint、get-build和update任务,在可能的情况下跳过多余的原生构建,并发布空中更新。
何时使用 EAS Workflows
| 场景 | 推荐 |
|---|---|
| 自动化构建、应用商店提交、OTA 更新和 Web 部署 | |
| 将 Web 应用部署到 EAS Hosting | |
| 在 CI 中使用 Maestro 运行 E2E 测试 | |
| 从 GitHub 的 push 或 pull request 事件触发构建和更新 | |
| 无需管理自己的基础设施或 macOS 机器的 CI/CD | |
| 依赖非 EAS 服务(Docker、自定义运行器)的高度定制化流水线 |
常见问题(FAQ)
工作流与其他 CI 服务相比如何?
EAS Workflows 旨在帮助你和你的团队发布应用。它预先配置了可打包的任务类型,可以构建、提交、更新、运行 Maestro 测试等。所有任务类型都运行在 EAS 上,因此你只需管理一组 YAML 文件,并且任务运行产生的所有产物都会显示在 expo.dev 上。
其他 CI 服务,如 CircleCI 和 GitHub Actions,功能更通用,能够做的事情比工作流更多。不过,这些服务也要求你理解每个任务的实现方式。在某些情况下这很有必要,但工作流通过预打包应用开发者最核心的任务类型,帮助你更快完成常见任务。此外,工作流的设计目标是为当前任务提供尽可能快的云端机器,并且我们会持续为你更新这些能力。
EAS Workflows 非常适合与你的 Expo 应用相关的操作,而其他 CI/CD 服务则会为其他类型的工作流提供更好的体验。
工作流运行在哪些云机器上?
工作流运行在 EAS 的托管基础设施上:
- Linux 工作机:
linux-medium(4 vCPU,16 GB RAM)或linux-large(8 vCPU,32 GB RAM) - 支持嵌套虚拟化的 Linux,用于 Android 模拟器:
linux-medium-nested-virtualization或linux-large-nested-virtualization - 用于 iOS 构建和模拟器的 macOS 工作机:
macos-medium(5 核,20 GB RAM)或macos-large(10 核,40 GB RAM)
我可以在工作流中使用环境变量吗?
可以。工作流支持 EAS 环境变量 和内联 env 值。可以使用 ${{ env.VARIABLE_NAME }} 语法引用环境变量。
当前有哪些限制?
没有共享的工作流配置(每个工作流都必须独立定义),也没有矩阵构建(无法并行运行具有不同配置的多个变体)。有关更多细节和更新,请参阅限制。
我可以在工作流中运行自定义脚本吗?
可以。自定义任务 配合 steps 可让你运行 shell 命令、使用内置函数如 eas/checkout 和 eas/install_node_modules,并为下游任务设置输出。
EAS Workflows 是否适用于现有的 React Native 项目?
可以。只要项目已配置为 EAS Build,EAS Workflows 就同时适用于 CNG(Continuous Native Generation) 和现有的 React Native 项目。
在考虑使用 EAS Workflows?请在下次团队会议中分享以下幻灯片
在下次团队会议中分享以下幻灯片,讨论 EAS Workflows 是什么,以及它如何帮助你的团队:

EAS Workflows CI/CD 同步幻灯片
了解使用 EAS Workflows 自动化 CI/CD 流程的优势。
其他资源
使用可直接使用的任务来构建、提交、更新、测试并部署你的应用。
了解用于定义工作流的 YAML 语法。
查看用于开发构建、预览更新和生产部署的常见工作流。
跟踪你的工作流的运行次数、成功率和长期趋势。