mcpField
E
expo-cicd-workflows

expo-cicd-workflows

github.com/midudev云与 DevOps7.0k57 次安装1 周前更新
代码仓库

关于 expo-cicd-workflows

expo-cicd-workflows 是用于编写和编辑 EAS CI/CD 工作流 YAML 文件的技能。它要求获取最新 schema 和文档,并据此验证工作流文件。

主要功能

  1. 01EAS 工作流 YAML 指引
  2. 02获取最新 schema 和文档
  3. 03检查任务依赖与表达式
  4. 04验证工作流文件

适用场景

  1. 01从头创建 EAS 工作流
  2. 02编辑 YAML 中的任务和触发器
  3. 03检查工作流任务间的引用
  4. 04使用前验证工作流

安装

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

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

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

包含的文件

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

scripts/
fetch.js
package.json
validate.js

详细介绍

EAS Workflows 技能

帮助开发者编写和编辑 EAS CI/CD 工作流 YAML 文件。

参考文档

生成或验证工作流文件前,请先获取以下资源。使用此技能 scripts/ 目录中的获取脚本(使用 Node.js 实现);脚本会使用 ETag 缓存响应,以提高效率:

# Fetch resources
node {baseDir}/scripts/fetch.js <url>
  1. JSON Schema — https://api.expo.dev/v2/workflows/schema

    • 必须获取此 Schema
    • 验证的权威来源
    • 所有作业类型及其必填/可选参数
    • 触发器类型及配置
    • Runner 类型、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 "{baseDir}/scripts/node_modules" ] || npm install --prefix {baseDir}/scripts

node {baseDir}/scripts/validate.js <workflow.yml> [workflow2.yml ...]

验证器会获取最新的 Schema 并检查 YAML 结构。修复报告的所有错误后,再将工作流视为完成。

回答问题

用户询问可用选项(作业类型、触发器、Runner 类型等)时,请获取 Schema 并据此作答,不要依赖可能已过时的信息。

评论

支持 Markdown