mcpField
E
expo-cicd-workflows

expo-cicd-workflows

github.com/sickn33云与 DevOps48.7k57 次安装今天更新
代码仓库

关于 expo-cicd-workflows

expo-cicd-workflows 面向 Expo 开发者,协助编写和修改 EAS CI/CD 工作流 YAML 文件。它依据当前 Expo 架构和文档提供编写指导,并支持结构验证。

主要功能

  1. 01EAS 工作流 YAML 编写指导
  2. 02获取最新架构和文档
  3. 03检查作业及其引用
  4. 04按架构验证 YAML 结构

适用场景

  1. 01创建 Expo EAS 构建流水线
  2. 02修改部署自动化工作流
  3. 03检查工作流文件的架构错误

安装

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

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

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

包含的文件

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

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

详细介绍

EAS Workflows 技能

使用场景

当你需要了解如何为 Expo 项目编写 EAS 工作流 YAML 文件时,请使用此技能。当用户询问 Expo 或 EAS 场景中的 CI/CD 或工作流、提到 .eas/workflows/,或希望获得 EAS 构建流水线或部署自动化方面的帮助时,请使用此技能。

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

本地辅助工具的行为与部署范围

此目录包含 fetch.js、validate.js 和 package.json,但不包含已安装的依赖项。执行前请先检查这些文件:fetch 可接受任意 URL、遵循平台重定向,并将文本缓存在 fetch 辅助工具旁运行时生成的 .cache 目录中,且没有内置超时或响应大小限制。只能在受限的网络环境中,通过 HTTPS 使用下方列出的固定官方资源;切勿传入不可信或私有 URL,也不要传入凭据。验证时会获取实时 schema 并解析本地 YAML;请记录获取时间和 schema 标识,因为结果可能会变化。Node 必须支持 import.meta.dirname/main,安装时需要使用经过审查且兼容的依赖项。结构验证不会运行工作流、证明密钥隔离,也不会授权计费构建、提交、部署或定期触发。

参考文档

生成或验证工作流文件前,请先获取以下资源。先确定此技能所在目录,然后使用其 scripts/ 目录中的 fetch 脚本。该脚本使用 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 结构。修复所有报告的错误后,再将工作流视为完成。

回答问题

当用户询问可用选项(任务类型、触发器、运行器类型等)时,请获取架构,并据此得出答案,而不要依赖可能已过时的信息。

限制

  • 仅当任务明确属于其上游产品或 API 的范围时,才使用此技能。
  • 在进行更改前,请根据当前官方文档核实命令、API 行为、定价、配额、凭据和部署影响。
  • 不要将生成的示例视为环境特定测试、安全审查或用户批准(针对破坏性操作或高成本操作)的替代品。

评论

支持 Markdown