October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

React Native CI/CD in 2026: EAS Build and GitHub Actions, Done Properly

Use GitHub Actions for repository checks and orchestration, and EAS Build for hosted iOS and Android binaries. Learn the setup, token handling, completion semantics, EAS Workflows alternative, and release credential boundaries.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For React Native teams, a practical CI/CD split is to let GitHub Actions run repository checks and coordinate releases while EAS Build creates hosted iOS and Android binaries. The key detail is that eas build --no-wait confirms dispatch, not build completion. If a later Actions step needs the finished artifact or result, wait for the build or use a completion-aware integration.

Choose where CI ends and mobile builds begin

EAS Build is Expo’s hosted service for producing Android and iOS app binaries. It can manage signing credentials or use credentials your team supplies; see Expo’s EAS Build overview. GitHub Actions, by contrast, is useful for checks tied to the repository—such as linting, type checks, tests, policy gates, and integrations with other systems.

There are three sensible arrangements. Use Actions to validate code and trigger EAS Build when you want general-purpose CI with hosted native builds. Use EAS Workflows when you want Expo-managed jobs for builds, submissions, updates, and tests. Or combine them: keep repository-specific checks in Actions and use EAS for Expo-specific release work. Expo supports using the services alongside one another; neither architecture is universally best.

Decision point GitHub Actions + EAS Build EAS Workflows
Where jobs run Actions runs repository CI; EAS Build performs the hosted native build. EAS-hosted macOS and Linux workers run workflow jobs.
Packaged Expo jobs Call EAS CLI and compose the rest of the pipeline yourself. Packaged jobs cover build, submit, update, and Maestro end-to-end tests; custom jobs can run commands.
Custom integrations Useful for broad pipeline control and integrations beyond EAS. Useful for Expo-centered pipelines; can also be invoked as part of a hybrid.
Build completion With --no-wait, Actions finishes after dispatch; omit it when the Actions job must wait for the result. Compose subsequent work in the workflow around its jobs.

For details on EAS Workflows’ capabilities and triggers, see Expo’s EAS Workflows introduction.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare the Expo project before automating it

Do not make the first attempt to configure project identity and signing happen in a non-interactive CI run. Expo’s CI build guide recommends completing an initial successful build for each supported platform. That setup initializes the EAS projectId, adds build profiles to eas.json, fills in native identifiers such as the Android package and iOS bundle identifier, and ensures signing credentials are available. Existing projects may already have some of this configured; check each item rather than assuming CI can infer it.

For production, build signing and store submission are related but distinct. A build needs the platform signing credentials; uploading to Apple or Google also needs the relevant store-side configuration. EAS Workflows build jobs require an EAS Build project, a profile in eas.json, and platform credentials. The profile defaults to production if omitted, so select the intended profile explicitly—development, preview, or production. See the pre-packaged jobs documentation.

Trigger EAS Build from GitHub Actions

The following pattern reflects Expo’s documented CI setup: authenticate with an Expo personal access token saved as a GitHub secret, install dependencies reproducibly, and invoke EAS CLI in non-interactive mode. The action and Node versions shown in Expo’s current example are examples, not permanent recommendations; check compatibility before copying or updating them. The workflow dispatches builds for both platforms on a push to main or when manually run.

name: EAS Build
on:
  workflow_dispatch:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v5
      - name: Set up Node
        uses: actions/setup-node@v6
        with:
          node-version: 24
      - name: Set up Expo and EAS CLI
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}
      - name: Install dependencies
        run: npm ci
      - name: Start Android and iOS builds
        run: eas build --platform all --non-interactive --no-wait

Expo’s example workflow is documented at Trigger builds from CI. Adapt the package manager and install command to the project’s lockfile and runtime requirements; reproducibility depends on installing the versions recorded by the repository.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What goes in EXPO_TOKEN?

Use an Expo personal access token, not a store credential. Save it as a GitHub Actions repository or organization secret named EXPO_TOKEN, then reference it in the workflow. Treat it as a credential: limit who can modify workflows that access it, and do not expose it to untrusted pull-request code. This access-control advice is a security recommendation, not a special token requirement.

Know exactly what --no-wait means

With --no-wait, the Actions runner is released after EAS accepts the build request. The Actions job can succeed even if the remote build later fails. This is appropriate when Actions only needs to dispatch work and no immediate downstream step needs the artifact or final result. Remove --no-wait when a later Actions step depends on the completed build, or use an integration that detects build completion. Otherwise, a green dispatch job can be mistaken for a successful binary build.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use EAS Workflows for an Expo-managed pipeline

EAS Workflow files live in .eas/workflows/. A workflow can respond to GitHub pushes and pull requests, labels, branch or tag deletions, scheduled runs, App Store Connect events, manual CLI runs, and REST API calls. For GitHub events, the repository must be linked to its EAS project. Expo describes the service as automating builds, updates, submissions, and tests for React Native and Expo apps; see the workflow introduction.

Packaged job types include build, submit, update, and Maestro end-to-end tests. A custom job is available when a command does not fit a packaged type. Pick the build profile deliberately: if no profile is specified, the documented default is production. That implicit default can turn an otherwise routine workflow into a production build.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Expo’s generated deploy template uses project fingerprinting to choose between a production binary build and an over-the-air update: it builds and submits when native changes require a binary, or publishes an update when a matching native build already exists. See Get started with EAS Workflows. EAS Update does not eliminate native builds when native code changes or runtime compatibility requires a new binary; an OTA update is only suitable when a compatible native build is already available.

Automate TestFlight and Google Play releases safely

CI can build for iOS and Android, but distribution requires more than a successful compile. Prepare platform signing credentials for the production build, then configure the relevant Apple or Google submission credentials separately. EAS Submit configuration is documented in Configure EAS Submit with eas.json; EAS Workflows’ packaged submit jobs are described in the pre-packaged jobs guide.

Keep store credentials and production-capable workflows away from routine pull-request checks. Restrict release triggers to deliberate branches or events, and use repository or environment controls so untrusted changes cannot access production secrets. Expo documents supported workflow triggers and credential setup; the restrictive policy is an operational safeguard your team should apply.

For Apple credential repair, Expo’s CI guide also describes optional App Store Connect API key environment variables, including a provisioning-profile re-signing use case. These API credentials do not replace the separate platform signing and store submission setup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Avoid the deprecated Expo dashboard build trigger

Expo’s legacy dashboard build triggers are deprecated and disabled for new projects. For a new setup, use GitHub Actions with EAS Build or EAS Workflows rather than designing around that legacy interface. See Trigger builds from the Expo GitHub App.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.