Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automate Everything - Continuous Integration fo...

Automate Everything - Continuous Integration for iOS and Mac

Presented at 360iDev on 9/10/13

Whether working in the enterprise, as an indie, or something in between, a developer needs to optimize their time. Real benefit can be found by automating recurring tasks. In this talk I'll describe how developers in any size organization can derive a benefit from using continuous integration to automate tasks. You'll learn how to get a basic Jenkins instance setup in minutes that will do the basics of getting your builds every time you check in code. With the basics automated, I'll show you how to expand into other automated tasks:

- Distributing builds to testers.
- Running unit tests.
- Static code analysis.
- Deploying and running an OSX app in a virtual machine.
- Taking screenshots for the app store.

Anything worth doing twice is worth automating, so start automating and get back to your real work.

Brian Partridge

September 15, 2013
Tweet

More Decks by Brian Partridge

Other Decks in Programming

Transcript

  1. Agenda • The What & Whys of CI • Introduction

    to Jenkins • More Advanced Techniques
  2. Build ⌘ + B ⌘ + B ⌘ + B

    ⌘ + B ⌘ + B ⌘ + B ⌘ + B ⌘ + B ⌘ + B ⌘ + B
  3. Automate Everything • Compilation • Testing • Archiving • Deployment

    Anything worth doing more than once is worth automating.
  4. Continuous Integration “The practice of merging multiple developer working copies

    several times a day.” “The practice of determining characteristics of code and performing actions based on those characteristics.” +
  5. What’s a Jenkins? • Web Service • Open Source •

    Vetted By Enterprise • Small Footprint
  6. Plugins • Source Control • git, mercurial, svn, etc •

    Build Systems • Xcode, Maven, Ant, etc
  7. • Parameterized Builds • Scripts • Multiple Build Hosts *

    Image © 2012-13 xkcd - http://what-if.xkcd.com/13/
  8. Scripts • xcodebuild • agvtool new-version -all "$BUILD_NUMBER" • Open

    the Keychain • https://github.com/brianpartridge/iOS-Build-Scripts
  9. Supporting Legacy OSX • VMware Fusion • vmrun CLI •

    Start and Stop VMs • Manage Snapshots • Run Scripts
  10. More Info • http://jenkins-ci.org • Jenkins: The Definitive Guide by

    John Ferguson Smart • http://bit.ly/automate-everything