iOS Build Infrastructure at Square

Post on 15-Apr-2017

392 views 0 download

Transcript of iOS Build Infrastructure at Square

iOS Build + Test Infrastructure MICHAEL TAURASO

Foundation Team

What do we do?

Robots to Build and Test your App.Make

What do we do?

Robots to Build and Test your App.Magic

What do we do?

Developer Happiness

What do we do?

Find issues before shipping

Well Actually…

Servers

Configure machines

Get Xcode to behave

Software

Developers know what is being built

Self-service builds

ServersVirtualization is bad for builds :(

Our Hardware

Dual Core Mac Minis 16 GB RAM 256GB Solid State Drive $1,200 each

ServersDeploy Studio

Network boot Installs Xcode + SDKs Configuration for Xcode

Ansible

Checked in machine config Idempotent Hipster Puppet Easy to change + Add tools

Swarm for Jenkins

No web-configuration Tight with Jenkins version

Servers

Taming Xcode

10.10 ♥ 6Tame OS X First

Match latest versions with Xcode Never Sleep (caffeinate command) Always have a GUI Context

Tame Xcode

TCC Database Dev tools Security

Paranoia

Updates off SSH mostly off Spotlight off Bonjour off VNC off

Servers

Servers

“A challenge to an icon-obsessed culture.. increasingly interposing itself between

people and the physical world”

Software

What is CI + Release’s Interface to Developers?

SoftwareChecked in configuration defines what to build

Release Code builds the config

Software

Version everything

CocoaPods Bundler Know what you’re building with

Software

Often or Per-AppRarely

COMPONENT CHANGE

Software

Examine your iOS Signing files today https://github.com/emonti/pliney

xcodebuild will gleefully burn your toast.

Code Signing

Entitlements MobileProvision Certificates

SoftwareiOS Simulator

`xcrun simctl` Control the Simulator Make a new sim for every run Restart everything between runs

Statistics3x as many Tests run on every PR

Build Stability 85% -> 99.5%

Ask any Square iOS Developer about mobuild

mtauraso@squareup.com

@mtauraso