Skip to main content

Etsy’s Journey to Building a Continuous Integration Infrastructure for Mobile Apps

Nassim Kammah (Etsy)
Mobile
Rhinelander South
Average rating: ****.
(4.75, 4 ratings)
Slides:   1-PDF 

While traditional websites can leverage their continuous delivery infrastructure to quickly identify and fix bugs, releasing mobile apps requires a 3rd party approval. Major bugs and security vulnerabilities call for emergency releases, which still require the app store approval and can mean days of poor user experience, developer frustration, and a negative impact to the app ratings and reviews.

A comprehensive suite of automated functional tests can greatly help detect defects early across the broad spectrum of devices and configurations. The challenge then becomes setting up a reliable, scalable, and sustainable infrastructure to automatically build and test your app on simulators and devices, as soon as a developer pushes new code.

Today, we want to share with the audience Etsy’s journey to setting up our Continuous Integration infrastructure for our mobile apps teams.

This talk will cover:

  • How we do continuous integration for our iOS app and Android app
  • How a simple xcodebuild command, a review process, and OCLint can help you detect defects as early as they are introduced in the code base
  • How we use calabash for our functional tests
  • How we leverage a 3rd party mobile cloud provider to run the functional tests suites on physical devices for every push
  • How we use chef to maintain our iOS and Android build servers (including an army of mac minis)
  • How we organize manual testing of our app throughout the development cycle
Photo of Nassim Kammah

Nassim Kammah

Etsy

Nassim Kammah is a Software Engineer on the Test Automation Team at Etsy. Nassim has several years experience building and maintaining Continuous Integration environments for various platforms and languages. Lately, he has been focusing on building the mobile automation infrastructure for the Android and iOS apps at Etsy.