Automate Mobile CI/CD with EAS Workflows and Custom Builds
Article Summary
Expo just unified mobile CI/CD orchestration into a single YAML file. EAS Workflows now handles builds, tests, submissions, and OTA updates without juggling multiple tools.
Expo's engineering team has evolved their EAS Build system from limited customization into EAS Workflows, a complete CI/CD orchestration platform. What started as a 2023 preview of customizable builds is now a production-ready system that lets teams define entire mobile delivery pipelines in YAML, with pre-packaged jobs for common tasks and full customization when needed.
Key Takeaways
- Single YAML config orchestrates builds, Maestro tests, store submissions, and OTA updates
- Pre-packaged jobs handle TestFlight, Google Play, Slack notifications without custom scripts
- Repack feature updates JS in ~2 minutes instead of full native rebuilds
- Custom build jobs support TypeScript functions with typed build properties
- Fingerprint detection skips redundant builds by hashing native runtime characteristics
EAS Workflows consolidates mobile CI/CD into one platform with YAML-defined pipelines, eliminating the need to coordinate between GitHub Actions, Fastlane, and separate build services.
About This Article
Mobile teams had to juggle multiple tools like GitHub Actions, Fastlane, and EAS Build to manage CI/CD pipelines. Each tool worked separately, and customization was limited to what eas.json could handle.
Expo built EAS Workflows to solve this. It includes pre-packaged job types: submit, testflight, update, deploy, maestro, fingerprint, get-build, repack, slack, github-comment, require-approval, and doc. Teams define their entire pipeline in a single YAML file without writing custom scripts.
The repack feature lets teams repackage JavaScript onto existing builds in about 2 minutes instead of rebuilding everything from scratch. The fingerprint job watches native runtime characteristics and only triggers full builds when needed.