🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install expo/skills/expo-cicd-workflows

💡 提示:需要 Node.js 和 NPM

EAS 工作流技能

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

参考文档

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

# 获取资源
node {baseDir}/scripts/fetch.js <url>
  1. JSON 模式https://api.expo.dev/v2/workflows/schema
    • 必须获取此模式
    • 验证的真实来源
    • 所有作业类型及其必需/可选参数
    • 触发器类型和配置
    • 运行器类型、虚拟机镜像以及所有枚举值
  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 — 控制并行工作流运行

有关每个部分的完整规范,请查阅模式。

表达式

使用 ${{ }} 语法表示动态值。模式定义了可用的上下文:

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

生成工作流

在生成或编辑工作流时:

  1. 获取模式以了解当前的作业类型、参数和允许的值
  2. 验证每种作业类型是否提供了必需字段
  3. 确认工作流中 needsafter 引用的作业确实存在
  4. 检查表达式是否引用了有效的上下文和输出
  5. 确保 if 条件符合模式的长度限制

验证

在生成或编辑工作流文件后,根据模式进行验证:

# 如果缺少依赖项,请安装
[ -d "{baseDir}/scripts/node_modules" ] || npm install --prefix {baseDir}/scripts

node {baseDir}/scripts/validate.js <工作流.yml> [工作流2.yml ...]

验证器会获取最新的模式并检查 YAML 结构。在认为工作流完成之前,请修复所有报告的错误。

回答问题

当用户询问可用选项(作业类型、触发器、运行器类型等)时,请获取模式并从中推导出答案,而不是依赖可能过时的信息。

📄 原始文档

完整文档(英文):

https://skills.sh/expo/skills/expo-cicd-workflows

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。