如何为Expo项目编写CI/CD:Expo Skills的EAS Workflows YAML流水线实战
如何为Expo项目编写CI/CD:Expo Skills的EAS Workflows YAML流水线实战
【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/GitHub_Trending/skills9/skills
为 Expo 项目编写 CI/CD,最省心的方式是用 Expo Skills 中的eas-workflows技能:它教 AI Agent 读懂并写出 EAS Workflows 的 YAML 流水线文件,帮你自动化构建、提审和 PR 预览发布。本文面向新手,完整讲解这条 EAS Workflows YAML 流水线的工作方式、文件结构、常用场景与校验方法,让你快速搭起 Expo 项目的自动化发布通道。
为什么 Expo 项目需要 EAS Workflows
📌 很多团队用eas build手动构建、手动上传商店,效率低且容易漏步骤。EAS Workflows是 Expo Application Services 提供的 CI/CD 能力:把构建(build)、提交商店(submit)、OTA 更新(update)等动作写进一个 YAML 文件,之后由事件自动触发。
⚠️注意:EAS Workflows 属于 EAS 付费服务,每个工作流任务都会消耗套餐内的构建/计算分钟数,
build与submit任务还需要付费的 Apple Developer 和 Google Play 账号。
认识 eas-workflows 技能:AI 帮你写流水线
Expo Skills 是 Expo 官方团队出品的 AI Agent 技能集合,README.md 中列出了全部技能。其中专门负责 CI/CD 的是 eas-workflows,它的核心能力包括:
- 按需获取最新规范:技能自带 scripts/fetch.js 脚本,会拉取 EAS 官方的 JSON Schema 与语法文档,并使用 ETag + TTL 缓存(默认 15 分钟),确保 AI 依据的是当前有效的作业类型和参数,而不是"记忆"里的过期内容
- 生成与编辑:帮助创建、修改
.eas/workflows/下的 YAML 文件 - 提问解答:关于触发器类型、作业类型、Runner 类型等问题,都基于最新 Schema 作答
技能的触发描述定义在 SKILL.md 的 frontmatter 中:只要你在对话里提到 "CI/CD"、"workflows"、".eas/workflows/",Agent 就会自动加载它。配套的 Agent 元信息见 agents/openai.yaml。
EAS Workflows YAML 流水线文件的结构
了解基本结构,你就能看懂 AI 帮你生成的流水线。工作流文件统一放在项目的.eas/workflows/目录下(扩展名.yml或.yaml),且单个文件不能超过 16 KiB。
顶层共有 5 个键,各管一摊:
| 键 | 作用 | 新手理解 |
|---|---|---|
name | 工作流显示名 | 给这条流水线起个名字 |
on | 触发器(至少一个必填) | 什么时候自动跑,如 push、PR、打 tag |
jobs | 作业定义(必填) | 具体干哪些活:build、submit、update、run 等 |
defaults | 所有作业共享的默认值 | 统一设置,少写重复配置 |
concurrency | 并发控制 | 避免同一条流水线重复排队跑 |
💡 需要动态取值时,YAML 里用${{ }}表达式,官方 Schema 定义了这些上下文:github.*(仓库与事件信息)、inputs.*(手动触发时的输入)、needs.*/jobs.*(依赖作业的输出)、steps.*(自定义作业中各步骤的输出)、workflow.*(工作流元信息)。
用 AI Agent 快速上手:编写你的第一条流水线
第一步,安装 Expo Skills(在 Cursor、Copilot、Windsurf 等 AI 编码工具中):
npx skills@latest add expo/skills --skill '*'Claude Code 或 Codex 用户则直接从各自官方插件市场安装expo插件即可。
第二步,直接用自然语言向 Agent 提需求,比如:
- "为我的 Expo 项目创建一条 EAS 流水线,在 PR 时自动发布预览更新"
- "帮我写一个打 tag 后自动构建并提交双端商店的发布流水线"
Agent 会先拉取最新 Schema 确认作业类型与必填参数,生成文件后还会自动校验引用关系(needs/after指向的作业是否存在、表达式上下文是否有效)。
常用流水线场景:PR 预览、生产发布与条件构建
workflows.md 收录了四条即拿即用的模板:
- PR 预览:PR 打开或更新时,自动发布一条以 PR 号为分支名的 OTA 更新
- 生产发布:打
v*tag 后,双端并行构建,再各自提审 App Store 和 Play Store - 分支构建:push 到
main或release/*时自动构建 - 条件构建:先用
run作业检测改动范围,只有相关目录有变更时才触发构建,节省构建分钟数
PR 预览流水线的核心形态(完整模板见上文参考文件):
name: PR Preview on: pull_request: types: [opened, synchronize] jobs: publish: type: update params: branch: "pr-${{ github.event.pull_request.number }}"一键校验:确保你的流水线配置无误
AI 生成的流水线务必做服务端校验。在 Expo 项目根目录执行(每个改动过的文件单独跑一次):
npx -y eas-cli@latest workflow:validate .eas/workflows/<workflow.yml> --non-interactive这一步比普通 YAML 校验更严格:它会核对作业引用的构建 profile 是否真实存在于项目的eas.json,并执行 EAS 服务端校验。看到Workflow configuration YAML is valid.才算通过,报错则修复后重跑,直到全部通过。
最佳实践清单 ✅
- 手动生产发布使用
workflow_dispatch触发器,避免误触发 - 敏感信息(证书、Token)放EAS Secrets,绝不写进 YAML 文件
- 用 tag 管理版本化发布,用
workflow_dispatch兜底人工操作 - 单个工作流文件保持小于 16 KiB,复杂场景拆成多个文件
- 插件安装方式还自带 Expo MCP Server 配置,Agent 可直接触发和监控 EAS 构建与工作流
相关文件速查
| 资料 | 路径 |
|---|---|
| 核心技能定义 | SKILL.md |
| Schema 拉取脚本(含缓存逻辑) | scripts/fetch.js |
| 现成流水线模板 | references/workflows.md |
| 全部技能索引 | plugins/expo/skills/README.md |
| 项目总览与安装指南 | README.md |
按本文步骤,你只需一句话需求 + 一条校验命令,就能让 AI 为你交付一条可用的 EAS Workflows CI/CD 流水线,把 Expo 应用的构建与发布交给自动化。
【免费下载链接】skillsA collection of AI agent skills for working with Expo projects and Expo Application Services项目地址: https://gitcode.com/GitHub_Trending/skills9/skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考