Aleksey_Demedetskiy_Jenkins

21
JENKINS Distributed continuous integration system

description

 

Transcript of Aleksey_Demedetskiy_Jenkins

Page 1: Aleksey_Demedetskiy_Jenkins

JENKINS

Distributed continuous integration system

Page 2: Aleksey_Demedetskiy_Jenkins

Software lifecycle w/o CI

Development Testing Production

Page 3: Aleksey_Demedetskiy_Jenkins

Software lifecycle with CI

Development

Testing

Production

Page 4: Aleksey_Demedetskiy_Jenkins

Mobile Development Features

•Small projects

•Small timeline

•Small teams

Page 5: Aleksey_Demedetskiy_Jenkins

A lot of projects!

Page 6: Aleksey_Demedetskiy_Jenkins

CI can automate• On request• Daily• From CVS

Build

• Performance measuring• Auto-runningUnit-test

• Copy-Paste code• Memory leaksStyle-check

• BOE (build over e-mail)• Old version storageDeployment

Page 7: Aleksey_Demedetskiy_Jenkins

iOS SetupDistributed build, auto-deploy and friends

Page 8: Aleksey_Demedetskiy_Jenkins

Simple way

Mac as a server Troubles with other platforms

Page 9: Aleksey_Demedetskiy_Jenkins

Other way – distributed CI One CI for ALL projects Linux server for Jenkins For all platforms Building in native environment ???? PROFIT!!!

Page 10: Aleksey_Demedetskiy_Jenkins

But…

You still need some Mac for build

You need to auto power-on your build machines

Page 11: Aleksey_Demedetskiy_Jenkins

Workflow

Connect•Create a special user on slave•Exchange SSH keys•Test connection over terminal•Create slave inside Jenkins

Work•Build•Unit testing•Style check•Creating an Ad-Hock build

Gather •Building logs•Unit test results

Analyze •Draw charts•Send emails

Page 12: Aleksey_Demedetskiy_Jenkins

Project settings

Create simple Ad-Hoc distribution configuration

Set all certificates to ‘auto’ Remember this settings:

Page 13: Aleksey_Demedetskiy_Jenkins

Creating Jenkins job

New job with free configuration

Enable security

Page 14: Aleksey_Demedetskiy_Jenkins

Creating Jenkins job

Select your environment

Setup your CVS

Page 15: Aleksey_Demedetskiy_Jenkins

Building script

Setup phaseError exitClear workspaceCreating archiveCD to source

Page 16: Aleksey_Demedetskiy_Jenkins

Building script

Setup phaseClean allUnlock keychain for code signInstall mobile provision

Page 17: Aleksey_Demedetskiy_Jenkins

Building script

Build phaseBuilding tests

Building app

Page 18: Aleksey_Demedetskiy_Jenkins

Building script

Creating IPA

Page 19: Aleksey_Demedetskiy_Jenkins

Analyze source code

Script

ToolsPlot build data plug-inClang Static Analyzer (

http://clang-analyzer.llvm.org/)

Page 20: Aleksey_Demedetskiy_Jenkins

What next?

Auto deploy builds OTAhttp://testflightapp.com/Own web-server

iOS Jenkins plug-inTemplateCode analyzer

Page 21: Aleksey_Demedetskiy_Jenkins

The end!

Alexey Demedeckiy, MobiDevSkype: nobidonEmail: [email protected]