---
id: gh-eas-workflows
name: "eas-workflows"
url: https://skills.yangsir.net/skill/gh-eas-workflows
author: expo
domain: ai-ci-cd-deployment
tags: ["eas", "workflows", "ci-cd", "yaml", "expo"]
install_count: 21400
rating: 4.60 (120 reviews)
github: https://github.com/expo/skills/tree/main/plugins/expo/skills/eas-workflows
---

# eas-workflows

> 此技能帮助开发者编写和管理 Expo EAS 工作流 YAML 文件。它自动获取最新 schema 和语法文档，验证 YAML 结构，确保 CI/CD 配置正确可靠，减少手动排查和调试时间。

**Stats**: 21,400 installs · 4.6/5 (120 reviews)

## Before / After 对比

### CI/CD 工作流配置效率

**Before**:

在没有此技能之前，开发者需要手动查阅 EAS 工作流文档和 schema，逐行编写 YAML，经常因为参数缺失或语法错误导致构建失败，平均需要反复调试 4 小时。

**After**:

有了此技能后，开发者只需描述所需步骤，该 Skill 自动生成符合最新 schema 的 YAML 配置文件，并实时验证，配置时间缩短至 30 分钟，错误率大幅下降。

| Metric | Before | After | Change |
|---|---|---|---|
| 配置时间 | 240分钟 | 30分钟 | -87.5% |

## Readme

# 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 validating workflow files. 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:

```bash
# 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 validation
   - 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`).

## 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 against the schema:

```sh
# 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 ...]
```

The validator fetches the latest schema and checks the YAML structure. Fix any reported errors before considering the workflow complete.

## 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:
```bash
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.


---
*Source: https://skills.yangsir.net/skill/gh-eas-workflows*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-eas-workflows/markdown*