mcpField
E
expo-cicd-workflows

expo-cicd-workflows

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

关于 expo-cicd-workflows

帮助开发者编写和编辑 EAS CI/CD 工作流 YAML 文件的技能。它要求获取最新的工作流 Schema 和文档,并用 Schema 验证文件。

主要功能

  1. 01编写和编辑工作流 YAML
  2. 02获取最新 JSON Schema 与文档
  3. 03检查任务参数及依赖引用
  4. 04验证表达式上下文和条件
  5. 05通过 Schema 验证工作流文件

适用场景

  1. 01创建 EAS CI/CD 工作流
  2. 02根据当前 Schema 更新工作流
  3. 03检查任务依赖和表达式
  4. 04验证工作流 YAML 是否符合规范

安装

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

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

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

包含的文件

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

agents/
openai.yaml
scripts/
fetch.js
package.json
validate.js

详细介绍

EAS Workflows 技能

帮助开发者编写和编辑 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
    • 验证的权威来源
    • 所有作业类型及其必需/可选参数
    • 触发器类型和配置
    • 运行器类型、VM 镜像和所有枚举值
  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)中。

顶层结构

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

  • 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 的长度限制

验证

生成或编辑工作流文件后,请根据 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