关于 eas-workflows
eas-workflows 是一项 Expo 技能,用于编写和编辑 EAS CI/CD 工作流 YAML。它要求参考当前模式和文档,并说明使用 EAS CLI 验证前的检查步骤。
主要功能
- 01获取最新工作流模式和文档
- 02工作流 YAML 结构指南
- 03检查作业引用与表达式
- 04EAS CLI 工作流验证步骤
适用场景
- 01创建 EAS CI/CD 工作流文件
- 02编辑触发器和作业定义
- 03验证前检查工作流字段
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ expo/ skills --skill eas-workflows安装后在 Claude Code 中输入/eas-workflows确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlscripts/fetch.jspackage.json详细介绍
EAS 工作流技能
EAS 服务会产生费用。 EAS Workflows 在 Expo Application Services 上运行,这是一款有免费套餐限制的付费产品。每个工作流任务都会消耗套餐中的构建/计算分钟数;构建或提交的任务还需要付费的 Apple Developer 和 Google Play 账号。触发运行前,请查看 https://expo.dev/pricing。
帮助开发者编写和编辑 EAS CI/CD 工作流 YAML 文件。
参考文档
在生成或编辑工作流文件前,或回答语法问题时,请先获取以下资源。首先解析此技能的目录,然后使用其 scripts/ 目录中的获取脚本。该脚本使用 Node.js 实现,并通过 ETag 缓存响应以提高效率:
# Fetch resources
node <skill-dir>/scripts/fetch.js <url>
-
JSON Schema — https://api.expo.dev/v2/workflows/schema
- 必须获取此 schema
- 工作流 YAML 结构的权威来源;EAS CLI 仍是最终验证的权威工具
- 所有任务类型及其必需/可选参数
- 触发器类型和配置
- 运行器类型、虚拟机映像和所有枚举值
-
语法文档 — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx
- 工作流 YAML 语法概览
- 示例和英文说明
- 表达式语法和上下文
-
- 受支持的预打包任务类型文档
- 特定任务的参数和输出
不要依赖记忆中的取值;随着新功能的添加,这些资源会不断更新。
工作流文件位置
工作流文件位于 .eas/workflows/*.yml(或 .yaml)中。每个文件不得超过 16 KiB。
顶层结构
工作流文件包含以下顶层键:
name— 工作流的显示名称on— 启动工作流的触发器(至少需要一个)jobs— 任务定义(必需)defaults— 所有任务共享的默认值concurrency— 控制并行运行的工作流
请查阅 schema,了解各部分的完整规范。
表达式
使用 ${{ }} 语法获取动态值。schema 定义了可用的上下文:
github.*— GitHub 仓库和事件信息inputs.*—workflow_dispatch输入的值needs.*— 依赖任务的输出和状态jobs.*— 任务输出(替代语法)steps.*— 自定义任务中的步骤输出workflow.*— 工作流元数据
生成工作流
生成或编辑工作流时:
- 获取 schema,以了解当前的任务类型、参数和允许值
- 验证每种任务类型都包含必需字段
- 验证
needs和after中引用的任务存在于工作流中 - 检查表达式是否引用了有效的上下文和输出
- 确保
if条件符合 schema 的长度限制
验证
生成或编辑工作流文件后,请在 Expo 项目根目录下使用 EAS CLI 进行验证:
npx -y eas-cli@latest workflow:validate .eas/workflows/<workflow.yml> --non-interactive
对每个已更改的工作流文件分别运行此命令。此操作需要已登录的 EAS CLI 会话,并且项目已关联 Expo 项目。与仅基于 schema 的验证不同,此命令还会根据项目的 eas.json 检查构建配置文件引用,并执行 EAS 服务端验证。修复所有报告的错误,并重新运行命令,直到其输出 Workflow configuration YAML is valid.。不要用本地 YAML 或 JSON Schema 验证器替代此命令。
回答问题
用户询问可用选项(任务类型、触发器、运行器类型等)时,请获取 schema 并据此作答,而不是依赖可能已过时的信息。
提交反馈
如果你发现此技能中存在错误、误导性信息或过时信息,请提交报告,以便 Expo 改进:
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-workflows" "<actionable feedback>"
只有在有具体且可执行的内容需要报告时才提交。请尽可能提供相关背景信息。
如果 Agent 反复无法完成 Expo 任务,或用户不得不介入,请使用 --category evals,并将相关的 Expo 包或命令作为 --subject,简要报告任务、预期结果以及出现的问题。