关于 expo-cicd-workflows
帮助开发者编写和编辑 EAS CI/CD 工作流 YAML 文件的技能。它要求获取最新的工作流 Schema 和文档,并用 Schema 验证文件。
主要功能
- 01编写和编辑工作流 YAML
- 02获取最新 JSON Schema 与文档
- 03检查任务参数及依赖引用
- 04验证表达式上下文和条件
- 05通过 Schema 验证工作流文件
适用场景
- 01创建 EAS CI/CD 工作流
- 02根据当前 Schema 更新工作流
- 03检查任务依赖和表达式
- 04验证工作流 YAML 是否符合规范
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ expo/ skills --skill expo-cicd-workflows安装后在 Claude Code 中输入/expo-cicd-workflows确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlscripts/fetch.jspackage.jsonvalidate.js详细介绍
EAS Workflows 技能
帮助开发者编写和编辑 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
- 验证的权威来源
- 所有作业类型及其必需/可选参数
- 触发器类型和配置
- 运行器类型、VM 镜像和所有枚举值
-
语法文档 — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx
- 工作流 YAML 语法概述
- 示例和英文说明
- 表达式语法和上下文
-
- 支持的预打包作业类型文档
- 作业专属参数和输出
不要依赖记忆中的值;这些资源会随着新功能的加入而更新。
工作流文件位置
工作流位于 .eas/workflows/*.yml(或 .yaml)中。
顶层结构
工作流文件包含以下顶层键:
name— 工作流的显示名称on— 启动工作流的触发器(至少需要一个)jobs— 作业定义(必需)defaults— 所有作业共享的默认值concurrency— 控制并行运行的工作流
请查阅 Schema,了解各部分的完整规范。
表达式
使用 ${{ }} 语法设置动态值。Schema 定义了可用的上下文:
github.*— GitHub 仓库和事件信息inputs.*— 来自workflow_dispatch输入的值needs.*— 依赖作业的输出和状态jobs.*— 作业输出(替代语法)steps.*— 自定义作业中步骤的输出workflow.*— 工作流元数据
生成工作流
生成或编辑工作流时:
- 获取 Schema,以了解当前的作业类型、参数和允许值
- 验证每种作业类型是否包含必需字段
- 确认
needs和after中引用的作业均存在于工作流中 - 检查表达式引用的上下文和输出是否有效
- 确保
if条件符合 Schema 的长度限制
验证
生成或编辑工作流文件后,请根据 Schema 验证:
# Install dependencies if missing
[ -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 并据此得出答案,而不要依赖可能过时的信息。
评论
支持 Markdown