HomeGuidesReferenceLearn

Build server infrastructure

Learn about the current build server infrastructure when using EAS.


This document was last updated on September 28, 2023.

Builder IP addresses

Here is the up-to-date list of builder IP addresses.

Configuring build environment

Images for each platform have one specific version of Node.js, yarn, CocoaPods, Xcode, Ruby, Fastlane, and so on. You can override some of the versions in eas.json. If there is no dedicated configuration option you're looking for, you can use npm hooks to install or update any system dependencies with apt-get or brew. Please consider that those customizations are applied during the build and will increase your build times.

When selecting an image for the build you can use the full name provided below or one of the aliases: default, latest.

  • The use of a specific name guarantees the consistent environment with only minor updates.
  • default alias will be assigned to the environment that most closely resembles the configuration used for Expo SDK development.
  • latest alias will be assigned to the image with the most up to date versions of the software.
Note: If you do not provide image in eas.json, your build will use default image. However, in some cases, we select a more appropriate image based on the Expo SDK version or React Native version. You can check what image is used for a build in the "Spin up build environment" build logs section.

Android build server configurations

Android builders run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance.

  • Hardware:

  • npm cache deployed with Kubernetes

  • Maven cache deployed with Kubernetes

  • Global Gradle configuration in ~/.gradle/gradle.properties:

    ~/.gradle/gradle.properties
    org.gradle.jvmargs=-Xmx14g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    org.gradle.parallel=true
    org.gradle.configureondemand=true
    org.gradle.daemon=false
    
  • Global npm configuration in ~/.npmrc:

    ~/.npmrc
    registry=http://npm-cache-service.worker-infra-production.svc.cluster.local:4873
    
  • Global Yarn configuration in ~/.yarnrc.yml:

    ~/.yarnrc.yml
    unsafeHttpWhitelist:
      - '*'
    npmRegistryServer: 'http://npm-cache-service.worker-infra-production.svc.cluster.local:4873'
    enableImmutableInstalls: false
    

Android server images

ubuntu-22.04-jdk-11-ndk-r21e (alias latest)

Details
  • Docker image: ubuntu:jammy-20220531
  • NDK 21.4.7075529
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 8.7.5
  • npm 8.19.2
  • Java 11

ubuntu-22.04-jdk-8-ndk-r21e

Details
  • Docker image: ubuntu:jammy-20220531
  • NDK 21.4.7075529
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • Java 8

ubuntu-20.04-jdk-11-ndk-r21e (alias default)

Details
  • Docker image: ubuntu:focal-20210921
  • NDK 21.4.7075529
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • Java 11

ubuntu-20.04-jdk-8-ndk-r21e

Details
  • Docker image: ubuntu:focal-20210921
  • NDK 21.4.7075529
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • Java 8

ubuntu-18.04-jdk-11-ndk-r19c

Details
  • Docker image: ubuntu:bionic-20210930
  • NDK 19.2.5345600
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • Java 11

ubuntu-18.04-jdk-8-ndk-r19c

Details
  • Docker image: ubuntu:bionic-20210930
  • NDK 19.2.5345600
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • Java 8

iOS build server configurations

iOS builder VMs run on Mac Mini hosts in an isolated environment. Every build gets its own fresh macOS VM. Learn more about it here

  • Hardware:

    • Intel(R) Core(TM) i7-8700B CPU, 64 GB RAM (6 cores/12 threads)
    • M1 3.2GHz 8-Core, 16 GB RAM (4 performance and 4 efficiency cores)
    • M2 3.4GHz 12-Core , 24 GB RAM (8 performance and 4 efficiency cores)
    • M2 Pro 3.4GHz 10-Core, 32 GB RAM (6 performance and 4 efficiency cores)
  • Build resources:

    • intel-medium: 3 cores, 12 GB RAM, 2 builder VMs per host
    • m-medium: 2 cores, 8 GB RAM, 2 builder VMs per host
    • large: 4 cores, 12 GB RAM, 2 builder VMs per host (for builds runnning on Apple M2) or 4 cores, 22 GB RAM, 1 builder VMs per host (for builds runnning on Apple M2 Pro)
  • npm cache

  • CocoaPods cache

  • cocoapods-nexus-plugin

  • Global npm configuration in ~/.npmrc:

    ~/.npmrc
    registry=http://10.254.24.9:4873
    
  • Global Yarn configuration in ~/.yarnrc.yml:

    ~/.yarnrc.yml
    unsafeHttpWhitelist:
      - '*'
    npmRegistryServer: 'registry=http://10.254.24.9:4873'
    enableImmutableInstalls: false
    

iOS server images

macos-ventura-13.6-xcode-15.0 (latest)

Details
  • macOS Ventura 13.6
  • Xcode 15.0 (15A240d)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 8.7.6
  • npm 8.1.2
  • fastlane 2.216.0
  • CocoaPods 1.13.0
  • Ruby 2.7

macos-ventura-13.4-xcode-14.3.1 (default)

Details
  • macOS Ventura 13.4
  • Xcode 14.3.1 (14E300c)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 8.6.5
  • npm 8.1.2
  • fastlane 2.213.0
  • CocoaPods 1.12.1
  • Ruby 2.7

macos-ventura-13.3-xcode-14.3

Details
  • macOS Ventura 13.3
  • Xcode 14.3 (14E222b)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 8.2.0
  • npm 8.1.2
  • fastlane 2.212.2
  • CocoaPods 1.12.0
  • Ruby 2.7

macos-monterey-12.6-xcode-14.2

Details
  • macOS Monterey 12.6
  • Xcode 14.2 (14C18)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.27.0
  • npm 8.19.2
  • fastlane 2.211.0
  • CocoaPods 1.11.3
  • Ruby 2.7

macos-monterey-12.6-xcode-14.1 (default for Intel builders)

Details
  • macOS Monterey 12.6
  • Xcode 14.1 (14B47b)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.15.0
  • npm 8.19.2
  • fastlane 2.210.1
  • CocoaPods 1.11.3
  • Ruby 2.7

macos-monterey-12.6-xcode-14.0

Details
  • macOS Monterey 12.6
  • Xcode 14.0 (14A309)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.11.0
  • npm 8.19.2
  • fastlane 2.210.0
  • CocoaPods 1.11.3
  • Ruby 2.7

macos-monterey-12.4-xcode-13.4 (deprecated)

Details
  • macOS Monterey 12.4
  • Xcode 13.4 (13F17a)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • fastlane 2.205.2
  • CocoaPods 1.11.3
  • Ruby 2.7

macos-monterey-12.3-xcode-13.3 (deprecated)

Details
  • macOS Monterey 12.3.1
  • Xcode 13.3.1 (13E500a)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • fastlane 2.205.2
  • CocoaPods 1.11.3
  • Ruby 2.7

macos-monterey-12.1-xcode-13.2 (deprecated)

Details
  • macOS Monterey 12.1
  • Xcode 13.2.1 (13C100)
  • Node.js 16.18.1
  • Bun 1.0.2
  • Yarn 1.22.17
  • pnpm 7.0.0
  • npm 8.19.2
  • fastlane 2.201.0
  • CocoaPods 1.11.2
  • Ruby 2.7
  • Ask a question on the forums

  • Edit this page

Was this doc helpful?