用途:帮助开发者理解并编写 Expo 项目的 EAS CI/CD 工作流 YAML 文件,适用于用户询问 Expo 或 EAS 上下文中的 CI/CD 与工作流时。
主要能力:生成和编辑 EAS 工作流 YAML;依据官方 JSON Schema 校验工作流结构;回答关于可用作业类型、触发器、运行器类型等选项的问题。
使用方式:工作流文件位于 .eas/workflows/.yml(或 .yaml)。顶层键包括 name、on(至少一个触发器)、jobs(必需)、defaults、concurrency。动态值使用 ${{ }} 表达式,可用上下文包括 github.、inputs.、needs.、jobs.、steps.、workflow.*。生成或校验前需先获取参考资源,先解析技能目录,再用其 scripts/ 目录下的 fetch 脚本(Node.js 实现,使用 ETag 缓存): node <skill-dir>/scripts/fetch.js <url> 需获取的 URL:JSON Schema https://api.expo.dev/v2/workflows/schema(必需,作为校验的事实来源);语法文档 https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx;预打包作业 https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx。
生成时需校验每种作业类型的必填字段、needs 与 after 引用的作业是否存在、表达式是否引用有效上下文与输出、if 条件是否满足 schema 长度约束。
校验:生成或编辑后运行: [ -d "<skill-dir>/scripts/node_modules" ] || npm install --prefix <skill-dir>/scripts node <skill-dir>/scripts/validate.js <workflow.yml> [workflow2.yml ...] 校验器会获取最新 schema 并检查 YAML 结构,需修复报告的错误。
限制:不要依赖记忆中的值,这些资源会随新功能变化;回答选项类问题时应从 schema 推导。其他细节暂未提供。