Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Official Expo skill for EAS Workflows — CI/CD pipelines for building and deploying Expo apps.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
SKILL.md
1---2name: expo-cicd-workflows3description: 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.4allowed-tools: "Read,Write,Bash(node:*)"5version: 1.0.06license: MIT License7---89# EAS Workflows Skill1011Help developers write and edit EAS CI/CD workflow YAML files.1213## Reference Documentation1415Fetch these resources before generating or validating workflow files. Use the fetch script (implemented using Node.js) in this skill's `scripts/` directory; it caches responses using ETags for efficiency:1617```bash18# Fetch resources19node {baseDir}/scripts/fetch.js <url>20```21221. **JSON Schema** — https://api.expo.dev/v2/workflows/schema23- It is NECESSARY to fetch this schema24- Source of truth for validation25- All job types and their required/optional parameters26- Trigger types and configurations27- Runner types, VM images, and all enums28292. **Syntax Documentation** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx30- Overview of workflow YAML syntax31- Examples and English explanations32- Expression syntax and contexts33343. **Pre-packaged Jobs** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx35- Documentation for supported pre-packaged job types36- Job-specific parameters and outputs3738Do not rely on memorized values; these resources evolve as new features are added.3940## Workflow File Location4142Workflows live in `.eas/workflows/*.yml` (or `.yaml`).4344## Top-Level Structure4546A workflow file has these top-level keys:4748- `name` — Display name for the workflow49- `on` — Triggers that start the workflow (at least one required)50- `jobs` — Job definitions (required)51- `defaults` — Shared defaults for all jobs52- `concurrency` — Control parallel workflow runs5354Consult the schema for the full specification of each section.5556## Expressions5758Use `${{ }}` syntax for dynamic values. The schema defines available contexts:5960- `github.*` — GitHub repository and event information61- `inputs.*` — Values from `workflow_dispatch` inputs62- `needs.*` — Outputs and status from dependent jobs63- `jobs.*` — Job outputs (alternative syntax)64- `steps.*` — Step outputs within custom jobs65- `workflow.*` — Workflow metadata6667## Generating Workflows6869When generating or editing workflows:70711. Fetch the schema to get current job types, parameters, and allowed values722. Validate that required fields are present for each job type733. Verify job references in `needs` and `after` exist in the workflow744. Check that expressions reference valid contexts and outputs755. Ensure `if` conditions respect the schema's length constraints7677## Validation7879After generating or editing a workflow file, validate it against the schema:8081```sh82# Install dependencies if missing83[ -d "{baseDir}/scripts/node_modules" ] || npm install --prefix {baseDir}/scripts8485node {baseDir}/scripts/validate.js <workflow.yml> [workflow2.yml ...]86```8788The validator fetches the latest schema and checks the YAML structure. Fix any reported errors before considering the workflow complete.8990## Answering Questions9192When 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.93