This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Get started with EAS Workflows

Edit page

Learn how to use EAS Workflows to automate your React Native CI/CD development and release processes.


This page walks you through creating your first EAS Workflow: development builds of your app for Android emulators, iOS simulators, physical devices, and production builds for the app stores.

Get started

Prerequisites

3 requirements

1.

Sign up for an Expo account

You'll need to sign up for an Expo account.

2.

Create a project

You'll need to create a project with the following command:

Terminal
npx create-expo-app@latest --template default@sdk-57

3.

Install EAS CLI

You'll need to install EAS CLI to create and run workflows:

Terminal
npm install -g eas-cli

1

Run the following command to create a workflow that creates development builds for Android and iOS:

Terminal
eas workflow:create --template build

Then follow the prompts and the [Action requested] steps when they appear. The command generates a workflow file at .eas/workflows/build.yml and sets up your project for building on EAS.

2

Run the workflow with the following command:

Terminal
eas workflow:run .eas/workflows/build.yml

Once you do, you can watch your workflow run on your project's workflows page.

3

When the builds finish, you can install them on your physical devices via the website UI. You can also run the following commands to install the latest builds on your Android Emulator and iOS Simulator:

Terminal
eas build:run -p android --latest
Terminal
eas build:run -p ios -e development-ios-simulator --latest

Then, start a development server so the development build can load your app:

Terminal
npx expo start

Create production builds

When you're ready to build for the app stores, generate a release workflow with the deploy template:

Terminal
eas workflow:create --template deploy

This sets up your project for automated deployment: it configures EAS Build and EAS Update and sets your app identifiers, then writes a complete release workflow to .eas/workflows/deploy.yml.

When you run it, the workflow fingerprints your project, then builds and submits a new production build when there are native changes so they're ready for submission, or publishes an over-the-air update when a matching build already exists, which will be sent to your users immediately.

For a walkthrough of the generated workflow, see the Deploy to production example.

If you only need to create production builds, use a workflow with a build job for each platform:

.eas/workflows/create-production-builds.yml
name: Create Production Builds jobs: build_android: type: build # This job type creates a production build for Android params: platform: android profile: production build_ios: type: build # This job type creates a production build for iOS params: platform: ios profile: production

This workflow uses the production profile from your eas.json. Production builds require app signing credentials. Set them up for each platform with the following commands:

Terminal
eas credentials:configure-build -p android -e production
Terminal
eas credentials:configure-build -p ios -e production

Then, run the workflow:

Terminal
eas workflow:run .eas/workflows/create-production-builds.yml

More

Automate workflows with GitHub events

You can trigger a workflow by pushing a commit to your GitHub repository. You can link a GitHub repo to your EAS project with the following steps:

  • Navigate to your project's GitHub settings.
  • Follow the UI to install the GitHub app.
  • Select the GitHub repository that matches the Expo project and connect it.

Then, add the on trigger to your workflow file. For example, if you want to trigger the workflow when a commit is pushed to the main branch, you can add the following:

.eas/workflows/create-production-builds.yml
name: Create Production Builds on: push: branches: ['main'] jobs: build_android: type: build params: platform: android profile: production build_ios: type: build params: platform: ios profile: production

Trigger workflows from App Store Connect events

You can also trigger workflows from App Store Connect events using on.app_store_connect.

Before using App Store Connect triggers, configure your App Store Connect connection in EAS dashboard:

Example workflow:

.eas/workflows/app-store-connect-events.yml
name: React to App Store Connect events on: app_store_connect: app_version: states: - ready_for_review - waiting_for_review jobs: send_slack_notification: type: slack environment: production params: webhook_url: ${{ env.SLACK_WEBHOOK_URL }} message: 'App version is ready for review or waiting for review.'

The example reads the webhook URL from a SLACK_WEBHOOK_URL environment variable. Create it in the production environment before running the workflow.

VS Code extension

Download the Expo Tools VS Code extension to get descriptions and autocompletions for your workflow files.

Got feedback or feature requests? Send us an email at workflows@expo.dev.