Back to DevOps & CI/CD

expo-cicd-workflows

ExpoEASCI/CDWorkflowsYAMLAutomationMobile DevelopmentDevOps
⭐ 2.1kπŸ“„ MITπŸ•’ 2026-06-16Source β†—

Install this skill

npx skills add expo/skills

Works across Claude Code, Cursor, Codex, Copilot & Antigravity

The expo-cicd-workflows skill assists developers in managing EAS CI/CD pipelines defined in YAML. Because workflow specifications change frequently, this skill relies on dynamic data retrieval rather than static memory. By interacting with the official JSON schema and syntax documentation, the agent ensures that generated configurations for runners, triggers, and job definitions remain accurate to the current Expo platform. It manages the full lifecycle of `.eas/workflows/*.yml` files, from initial structure generation to deep validation. By using the provided fetch scripts and validation tools, the agent verifies context expressions, job dependencies, and required parameters before finalizing any configuration. This approach prevents common syntax errors and ensures that CI/CD definitions align with the latest runner capabilities and platform constraints.

When to Use This Skill

  • β€’Setting up a new automated build and submission pipeline for production
  • β€’Refactoring existing workflow files to accommodate new runner types
  • β€’Troubleshooting syntax errors in existing .eas/workflows YAML files
  • β€’Adding dynamic triggers based on git events or manual inputs

How to Invoke This Skill

Example prompts that trigger this skill in Claude Code, Cursor, or Antigravity:

  • β€œCreate a new EAS workflow file for my production build
  • β€œCheck my .eas/workflows/build.yml for schema errors
  • β€œHow do I add a dependency between jobs in my Expo workflow
  • β€œGenerate a workflow that triggers on pull requests
  • β€œValidate my EAS workflow syntax against the latest schema

Pro Tips

  • πŸ’‘Always fetch the latest EAS workflow JSON schema (https://api.expo.dev/v2/workflows/schema) using the provided script before attempting to validate or generate new YAML files, as it's the definitive source of truth.
  • πŸ’‘Leverage the skill's ability to reference syntax and pre-packaged job documentation to avoid common mistakes and implement best practices directly in your workflow configurations.
  • πŸ’‘For complex workflows, break down the configuration into smaller, manageable jobs and test them incrementally before combining them, using the skill for step-by-step validation and refinement.

What this skill does

  • β€’Generates valid YAML workflow configurations for EAS
  • β€’Validates workflow syntax against the official Expo JSON schema
  • β€’Resolves dynamic expressions like github.* or inputs.* contexts
  • β€’Configures complex job chains using needs and after dependencies
  • β€’Retrieves current platform documentation using authenticated fetch scripts

When not to use it

  • βœ•Managing general Expo project source code outside of CI/CD configuration
  • βœ•Running local build tasks that do not involve the EAS cloud environment

Example workflow

  1. Fetch the latest JSON schema via the provided script
  2. Draft the YAML structure with required triggers and job definitions
  3. Insert steps and configure cross-job dependencies using needs
  4. Run the validation script against the generated YAML file
  5. Review any output errors and perform necessary schema-compliant adjustments

Prerequisites

  • –An existing Expo project initialized with EAS
  • –Node.js installed locally for the fetch and validation scripts

Pitfalls & limitations

  • !Relying on outdated hardcoded documentation instead of fetching the live schema
  • !Forgetting to validate the YAML after manual edits to the .eas/workflows directory
  • !Referencing non-existent workflow contexts or invalid job triggers

FAQ

Where should my workflow files be stored?
All workflow configurations must reside within the .eas/workflows/ directory in your project root.
How do I know if my workflow is valid?
Use the provided validation script in the scripts/ directory to check your YAML against the latest official Expo schema.
Can I use hardcoded values for job parameters?
It is safer to retrieve current parameters and enums from the schema rather than guessing, as these values evolve with the platform.
What happens if I forget to fetch the schema?
You risk generating invalid YAML that will fail during the actual EAS build process due to schema version mismatches.

How it compares

Unlike generic YAML generation, this skill actively fetches the platform's live JSON schema to ensure compatibility with current EAS runner capabilities and constraint rules.

Source & trust

⭐ 2.1k starsπŸ“„ MITπŸ•’ Updated 2026-06-16
πŸ“„ Full skill instructions β€” original source: expo/skills
# EAS Workflows Skill

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

## Reference Documentation

Fetch 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:

# Fetch resources
node {baseDir}/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:

# Install dependencies if missing
[ -d "{baseDir}/scripts/node_modules" ] || npm install --prefix {baseDir}/scripts

node {baseDir}/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.

How to Use This Skill Unit

Option A: Project-Specific (Recommended)

  1. Click "Download" above
  2. In your project, create the directory: .agent/skills/expo-cicd-workflows/
  3. Save the file as SKILL.md
  4. The agent will automatically discover the skill based on its description.

Option B: Global Installation (All Agents)

Save the file to these locations to make it available across all projects:

  • Claude Code: ~/.claude/skills/expo/skills/expo-cicd-workflows/SKILL.md
  • Cursor: ~/.cursor/skills/expo/skills/expo-cicd-workflows/SKILL.md
  • Antigravity: ~/.gemini/antigravity/skills/expo/skills/expo-cicd-workflows/SKILL.md

πŸš€ Install with CLI:
npx skills add expo/skills

Read the Master Guide: Mastering Agent Skills β†’

Recommended Rules

View more rules β†’

Recommended Workflows

View more workflows β†’

Recommended MCP Servers

View more MCP servers β†’

Take It Further

Maximize your productivity with these powerful resources

πŸ“‹

Define Your Standards

Set up coding standards to ensure this workflow produces consistent, high-quality results.

Browse Rules Library
πŸ“–

Master Workflows

Learn how to create custom workflows, use Turbo Mode, and build your automation library.

Complete Guide

How to use this Skill in Claude Code & Cursor

For Claude Code (CLI)

To use this skill in Claude Code, copy the rule content into your project's custom instructions or follow our Add-Skill CLI guide. This ensures Claude follows your standards during every code generation.

For Cursor & Windsurf

For Cursor or Windsurf, individual skills are best used in the "Rules for AI" section. This specific unit helps the agent avoid devops & ci/cd issues, leading to cleaner, more efficient code.

Why the skill format matters: the standardized Agent Skills format lets your AI agent load detailed instructions only when they are relevant, keeping your prompt clean while improving results.

Source & attribution

This skill is categorized under DevOps & CI/CD and is published by Expo Team, maintained in expo/skills.

← Browse All Agent Skills
Sponsored AI assistant. Recommendations may be paid.