mcpField
E
eas-workflows

eas-workflows

github.com/expo云与 DevOps3.5k22.6k 次安装今天更新
代码仓库

关于 eas-workflows

eas-workflows 是一项 Expo 技能,用于编写和编辑 EAS CI/CD 工作流 YAML。它要求参考当前模式和文档,并说明使用 EAS CLI 验证前的检查步骤。

主要功能

  1. 01获取最新工作流模式和文档
  2. 02工作流 YAML 结构指南
  3. 03检查作业引用与表达式
  4. 04EAS CLI 工作流验证步骤

适用场景

  1. 01创建 EAS CI/CD 工作流文件
  2. 02编辑触发器和作业定义
  3. 03验证前检查工作流字段

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/expo/skills --skill eas-workflows

安装后在 Claude Code 中输入/eas-workflows确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
scripts/
fetch.js
package.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>
  1. JSON Schema — https://api.expo.dev/v2/workflows/schema

    • 必须获取此 schema
    • 工作流 YAML 结构的权威来源;EAS CLI 仍是最终验证的权威工具
    • 所有任务类型及其必需/可选参数
    • 触发器类型和配置
    • 运行器类型、虚拟机映像和所有枚举值
  2. 语法文档 — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx

    • 工作流 YAML 语法概览
    • 示例和英文说明
    • 表达式语法和上下文
  3. 预打包任务 — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx

    • 受支持的预打包任务类型文档
    • 特定任务的参数和输出

不要依赖记忆中的取值;随着新功能的添加,这些资源会不断更新。

工作流文件位置

工作流文件位于 .eas/workflows/*.yml(或 .yaml)中。每个文件不得超过 16 KiB。

顶层结构

工作流文件包含以下顶层键:

  • name — 工作流的显示名称
  • on — 启动工作流的触发器(至少需要一个)
  • jobs — 任务定义(必需)
  • defaults — 所有任务共享的默认值
  • concurrency — 控制并行运行的工作流

请查阅 schema,了解各部分的完整规范。

表达式

使用 ${{ }} 语法获取动态值。schema 定义了可用的上下文:

  • github.* — GitHub 仓库和事件信息
  • inputs.* — workflow_dispatch 输入的值
  • needs.* — 依赖任务的输出和状态
  • jobs.* — 任务输出(替代语法)
  • steps.* — 自定义任务中的步骤输出
  • workflow.* — 工作流元数据

生成工作流

生成或编辑工作流时:

  1. 获取 schema,以了解当前的任务类型、参数和允许值
  2. 验证每种任务类型都包含必需字段
  3. 验证 needs 和 after 中引用的任务存在于工作流中
  4. 检查表达式是否引用了有效的上下文和输出
  5. 确保 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,简要报告任务、预期结果以及出现的问题。

评论

支持 Markdown