如何为Expo项目编写CI/CD:Expo Skills的EAS Workflows YAML流水线实战

发布时间:2026/10/29 1:56:16
如何为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 收录了四条即拿即用的模板:

  1. PR 预览:PR 打开或更新时,自动发布一条以 PR 号为分支名的 OTA 更新
  2. 生产发布:打v*tag 后,双端并行构建,再各自提审 App Store 和 Play Store
  3. 分支构建:push 到main或release/*时自动构建
  4. 条件构建:先用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),仅供参考