SuperAPI AI 工具集

expo-cicd-workflows

部署与运维

查看项目

更新于 10-16 02:00

技能介绍

适用场景

当需要帮助理解和编写 Expo 项目的 EAS 工作流 YAML 文件时使用本技能。当用户询问 Expo 或 EAS 环境下的 CI/CD 或工作流、提到 .eas/workflows/,或希望获得 EAS 构建流水线或部署自动化方面的帮助时适用。本技能帮助开发者编写和编辑 EAS CI/CD 工作流 YAML 文件。

参考文档

在生成或验证工作流文件之前,先抓取以下资源。首先解析本技能所在目录,然后使用其 scripts/ 目录中的 fetch 脚本。该脚本使用 Node.js 实现,并利用 ETag 缓存响应以提高效率:

抓取资源

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 语法概览

示例与英文说明

表达式语法与上下文

预打包作业 — 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.* — 工作流元数据

生成工作流

在生成或编辑工作流时:

抓取 schema 以获取当前作业类型、参数和允许值

验证每种作业类型的必需字段是否齐全

核实 needs 和 after 中引用的作业在工作流中确实存在

检查表达式引用了有效的上下文与输出

确保 if 条件符合 schema 的长度约束

验证

生成或编辑工作流文件后,对照 schema 进行验证:

如缺少依赖则安装

[ -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 并从中得出答案,而不是依赖可能过时的信息。

限制

仅在任务明确匹配其上游产品或 API 范围时使用本技能。

在做出更改前,对照当前官方文档核实命令、API 行为、定价、配额、凭据和部署影响。

不要将生成的示例视为环境特定测试、安全审查或对破坏性或高成本操作的用户批准的替代品。