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

Continuous Integration for IOS

Allan Davis
October 15, 2013

Continuous Integration for IOS

How to setup a Jenkins server for building ios applications.

Allan Davis

October 15, 2013
Tweet

More Decks by Allan Davis

Other Decks in Technology

Transcript

  1. Agenda • Overview • Setting up Ruby for an application

    • Setup up Cocoapods • Raking the setup, build and testing tasks • Setting up the Jenkins jobs • Sit Back and let it build Wednesday, October 16, 13
  2. What is Continuous Integration • Process in which code is

    constantly compiled with tests run against the app Wednesday, October 16, 13
  3. Adding Ruby to your Application • Mac has ruby installed

    by default • Add a couple of gems: • $ sudo gem install rake $ sudo gem install bundler Wednesday, October 16, 13
  4. Bundle Init # A sample Gemfile source "https://rubygems.org" # gem

    "rails" gem "cocoapods", "~> 0.25.0" gem "frank-cucumber", "~> 1.2.0" Wednesday, October 16, 13
  5. CocoaPods Init # Uncomment this line to define a global

    platform for your project # platform :ios, "6.0" pod 'AFNetworking', '~> 1.3.2' pod 'TestFlightSDK', '~> 2.0' pod 'Reachability', '~> 3.1.1' pod 'Pixate', '~> 2.0.0RC2' target :test do ! link_with "WorkoutPokerTests" ! #pod 'Kiwi', '~> 2.2.1' ! pod 'OCMock', '~> 2.2.1' end Wednesday, October 16, 13
  6. Rake Setup task :setup do system 'bundle install' system 'pod

    install' end Wednesday, October 16, 13
  7. Rake Test task :test do system 'xcodebuild -workspace WorkoutPoker.xcworkspace -scheme

    WorkoutPoker -sdk iphonesimulator7.0 build test' end Wednesday, October 16, 13
  8. Rake frank task :frank do' result = system 'frank build

    --workspace WorkoutPoker.xcworkspace -- scheme WorkoutPoker' if result #system 'frank launch' Dir.chdir('Frank') do system 'cucumber' end end end Wednesday, October 16, 13
  9. Get Started with Jenkins • Download Jenkins • Run java

    -jar jenkins.war • Open browser and go to localhost:8080 Wednesday, October 16, 13
  10. Jenkins Plugins • Jenkins GIT Plugin • Keychains and Provisioning

    Profiles Management • Testflight Plugin • Xcode plugin • Rake Plugin Wednesday, October 16, 13