跳到正文
cccskills
免费在 GitHub 公开

eas-workflows

Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(4)

  • SKILL.md4.7 KB
  • agents/openai.yaml331 B
  • scripts/fetch.js2.9 KB
  • scripts/package.json103 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

EAS Workflows Skill

EAS service - costs apply. EAS Workflows run on Expo Application Services, a paid product with free-tier limits. Each workflow job consumes your plan's build/compute minutes, and jobs that build or submit also need paid Apple Developer and Google Play accounts. Review https://expo.dev/pricing before triggering runs.

Help developers write and edit EAS CI/CD workflow YAML files.

Reference Documentation

Fetch these resources before generating or editing workflow files, or when answering syntax questions. First resolve this skill's directory, then use the fetch script in its scripts/ directory. It is implemented using Node.js and caches responses using ETags for efficiency:

# Fetch resources
node <skill-dir>/scripts/fetch.js <url>
  1. JSON Schema — https://api.expo.dev/v2/workflows/schema

    • It is NECESSARY to fetch this schema
    • Source of truth for the workflow YAML structure; EAS CLI remains the authoritative final validator
    • All job types and their required/optional parameters
    • Trigger types and configurations
    • Runner types, VM images, and all enums
  2. Syntax Documentation — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx

    • Overview of workflow YAML syntax
    • Examples and English explanations
    • Expression syntax and contexts
  3. Pre-packaged Jobs — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx

    • Documentation for supported pre-packaged job types
    • Job-specific parameters and outputs

Do not rely on memorized values; these resources evolve as new features are added.

Workflow File Location

Workflows live in .eas/workflows/*.yml (or .yaml). Each file must be 16 KiB or smaller.

Top-Level Structure

A workflow file has these top-level keys:

  • name — Display name for the workflow
  • on — Triggers that start the workflow (at least one required)
  • jobs — Job definitions (required)
  • defaults — Shared defaults for all jobs
  • concurrency — Control parallel workflow runs

Consult the schema for the full specification of each section.

Expressions

Use ${{ }} syntax for dynamic values. The schema defines available contexts:

  • github.* — GitHub repository and event information
  • inputs.* — Values from workflow_dispatch inputs
  • needs.* — Outputs and status from dependent jobs
  • jobs.* — Job outputs (alternative syntax)
  • steps.* — Step outputs within custom jobs
  • workflow.* — Workflow metadata

Generating Workflows

When generating or editing workflows:

  1. Fetch the schema to get current job types, parameters, and allowed values
  2. Validate that required fields are present for each job type
  3. Verify job references in needs and after exist in the workflow
  4. Check that expressions reference valid contexts and outputs
  5. Ensure if conditions respect the schema's length constraints

Validation

After generating or editing a workflow file, validate it with EAS CLI from the Expo project root:

npx -y eas-cli@latest workflow:validate .eas/workflows/<workflow.yml> --non-interactive

Run the command separately for each changed workflow file. It requires a logged-in EAS CLI session and a linked Expo project. Unlike schema-only validation, it also checks build profile references against the project's eas.json and performs EAS server-side validation. Fix every reported error and rerun the command until it prints Workflow configuration YAML is valid. Do not replace this command with a local YAML or JSON Schema validator.

Answering Questions

When users ask about available options (job types, triggers, runner types, etc.), fetch the schema and derive the answer from it rather than relying on potentially outdated information.

Submitting Feedback

If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:

npx --yes submit-expo-feedback@latest --category skills --subject "eas-workflows" "<actionable feedback>"

Only submit when you have something specific and actionable to report. Include as much relevant context as possible. If an AI agent repeatedly failed or the user had to take over an Expo task, load the expo-skill-feedback skill and follow its eval-candidate flow instead of reusing the command above.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Build and submit iOS and Android apps with EAS to TestFlight, the App Store, or Google Play. Supports Expo and other React Native projects, plus existing native apps. Use for eas.json setup, release pipelines, signing, app versions and build numbers, store submissions, and listing metadata. For Expo websites and API routes, use eas-hosting; for adding React Native screens to a native app, use expo-brownfield.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

Deploy Expo websites and Expo Router API routes to EAS Hosting - export the web bundle, run eas deploy for production and PR preview URLs, manage environment secrets and custom domains, and work within the Cloudflare Workers runtime. Also covers authoring API routes (+api.ts handlers, HTTP methods, request handling, CORS). Use when deploying an Expo web app or API routes, setting up EAS Hosting, or configuring hosting environments and domains. Not for native builds or store releases - use the eas-app-stores skill for those.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

Use for anything related to EAS Observe - adding `expo-observe` to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive and ObserveInteractiveMarker, the useObserve hook, the Expo Router / React Navigation integrations for per-route metrics, user-defined events via `Observe.logEvent`, error reporting via ObserveErrorBoundary and `Observe.reportError`, native crash reporting, source map upload for symbolicated stack traces, and runtime config such as sampleRate and dispatchInDebug), querying via the EAS CLI (`eas observe:metrics-summary`, `observe:metrics`, `observe:routes`, `observe:events`, `observe:session`, `observe:versions`, `observe:errors`, `observe:event`), interpreting the resulting metrics (cold/warm launch, TTR, TTI, navigation cold/warm TTR, update download, and the TTI frameRate/device/network params for triaging slow startups), or shipping an Observe integration inside a third-party package.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud. Read before running any `eas simulator:*` commands - it has the current syntax for this experimental API. Use whenever the user needs a simulator they can't run locally - 'run my app on a cloud simulator', 'use eas simulator to run/install/screenshot my app', 'I'm on Linux/Cursor and need an iOS device', 'no sim on this box / headless CI', 'let an agent click through my app and screenshot it', 'test my dev build on a remote sim with live reload', 'stream a sim to my browser' - even when they don't say 'EAS Simulator' or 'cloud'. On a host WITHOUT a local simulator (Linux, CI, cloud sandbox) it's the default; on macOS, do NOT auto-trigger for a plain 'run on the simulator' - use it only for a cloud/remote/shareable sim, an iOS version they lack, or an agent-driven session. NOT for local sims (expo run:ios, Xcode, Android Studio), EAS Build/Update, web preview, or physical devices.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

Configure and use EAS Update for over-the-air JavaScript and asset updates with expo-updates and EAS CLI. Use when setting up OTA updates, running eas update:configure or eas update, publishing to preview/staging/production channels, explaining branches/channels/runtime versions, testing updates, or debugging why an installed build still shows old code. Load for TestFlight, preview, or production updates that do not appear, including questions about cold launches or reopening the app. Not for update health metrics; use eas-update-insights for adoption, crashes, and rollout monitoring.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

Check the health of published EAS Update: crash rates, install/launch counts, unique users, payload size, and the split between embedded and OTA users per channel. Use when the user asks how an update is performing, whether a rollout is healthy, how many users are on the embedded build vs OTA, or wants to gate CI on update health.

中文简介正在准备中。当前显示原文说明。

expo/skills29292026年10月18日 更新

查看 expo 的全部技能

报告此技能的问题