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
3 requirements
3 requirements
1.
You'll need to sign up for an Expo account.
2.
You'll need to create a project with the following command:
- npx create-expo-app@latest --template default@sdk-573.
You'll need to install EAS CLI to create and run workflows:
- npm install -g eas-cli1
Run the following command to create a workflow that creates development builds for Android and iOS:
- eas workflow:create --template buildThen 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:
- eas workflow:run .eas/workflows/build.ymlOnce 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:
- eas build:run -p android --latest- eas build:run -p ios -e development-ios-simulator --latestThen, start a development server so the development build can load your app:
- npx expo startCreate production builds
When you're ready to build for the app stores, generate a release workflow with the deploy template:
- eas workflow:create --template deployThis 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:
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:
- eas credentials:configure-build -p android -e production- eas credentials:configure-build -p ios -e productionThen, run the workflow:
- eas workflow:run .eas/workflows/create-production-builds.ymlMore
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:
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:
- Open EAS dashboard and select your project.
- Navigate to Project settings > General > Connections.
- Connect your App Store Connect app.
Example workflow:
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.