jenkins user conference - continuous delivery on mobile
DESCRIPTION
SmartPhones have revolutionised the way we think and write software: how can you take an additional step and actually have your SmartPhone drive development? With Jenkins, you can drive and integrate every step of your development with your SmartPhone, end-to-end: CI and delivery - Application install - Test execution - Issue tracking. See how to implement mobile plugins for Jenkins on mobileTRANSCRIPT
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Mobile Application Lifecycle
Luca Milanesio
@jenkinsconf
www.gerritforge.com
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
About GerritForge
Founded in 2009 in London UK(previously known as LMIT Software Ltd)
Mission: Agile Application Lifecycle for the EnterpriseInnovator with Enterprise Agile products
Technology partner of
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
About the speaker
Luca MilanesioDirector and co-founder of GerritForge
Over 20 years of experience in Agile Development Management, SCM and ALM in large Enterprises worldwide Contributor to Jenkins since 2007 (and previously Hudson)
Git SCM mentor for the Enterprise since 2009
Contributors to Gerrit Code Review community since 2011
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Agenda
Introduction and conceptsRoots of Android OS development from Git and Gerrit Today's Mobile ALM in the Enterprise without Continuous DeliveryReal life [un]success storyJenkins as an Integration and Delivery EngineTell us your story !
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Concepts
The most successful Version Control Tool of the last 5 years.
World's #1 Open Source continuous integration engine
Mobile Application platform for accessing Jenkins continuous integration API from Android or iOS
World's #1 Open Source Mobile Operating System, powering over 900M
of devices world wide
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Where is Apple iOS ?
Source: http://www.gartner.com/newsroom/id/2482816
Android = world's mobile platform leaderAndroid historically linked to the Open Source communityConcepts explored may be applied to iOS as well
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Why Android on Git ?
Google's internal VC not suitable for external contributorsOpenSource VC needed– Scalable and distributed– Widely used by Linux community– Strong branch and merge capabilities
Linux kernel was on Git since 2005
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Git, Gerrit and Android workflow
A1
refs/for/master
Android OSmaster
C2 C2*
A1
clone
C2 ContributormasterC2*
push
Verified: -1(build failed)
push
Verified: +1(build OK)
Reviewed: +2
CI Build: OK
C2*
CI Build: OK
amend
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Putting all together with JenkinsW
ork
Days
Sprint Burndown
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Real life [un]success story
The challenge: developing a pre-embedded Mobile App for a Global Mobile Operator in 10 European Countries to over 2,000,000 customers
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Scrum sprints timeline
ScopeSprint
executionAccep
tPub Feedback
Sprint N
ScopeSprint
executionSprint N+1
ScopeSprint
executionSprint N+2
PubAccep
tFeedback
PubAccep
t
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Ver 1.0 / 2.0 Sprint lifecycle
Discovery Upgrade
Code committe
d
Publish & review
Client release Ver. N+1
Start Day#10
Day#13
Day#15
Day#18
FeedbackCode complete without feedback
Sprint N+1 start
Development
Without feedback
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Product's feedback
Low Google Play rating
Problems over Wi-Fireported too late
for the current Sprint
Impact onother Operators'customers
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
ALM on Mobile needs change
• Prescriptive, PO and stories
• Time-boxed, 1 month cycle
• Locked Sprint scope
• Adaptive, feedback at 360°
• Limit WIP, release daily / weekly
• Adaptive scope with features and bug-fixes
ManagingProject
aspiration
Dive intousers'
real world
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Organise the process with Jenkins
Monitor the SCM changesBuild the software App & BackendRun unit-tests + emulator testsDeploy backend to QAReal-time notify and update App to handsets with JenkinsMobi
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Continuous delivery on Mobile
Code committed
Story picked up
from backlog
Publish & review
Client in-App
Discovery Upgrade
Start Day-2 Day-3
FeedbackClient
discovery and
upgrade
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Mobile ALM pipeline
Push Build
Unit Tests
Push Build
Unit Tests
Automated
Tests
Push
Build
Unit Tests
Automated
Tests
Beta Users
Tests
User's feedback
Publish to all Users
Failed
Failed
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Building blocks
Private Network
4. Plug to Jenkins and ALM Tools
1. Get a Mobile Phone
2. JenkinsMobi on board
3. Connect to JenkinsMobi API
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Jenkins plugins for Mobile ALMRun Android emulator during
build
Execute Monkeyrunner
Orchestrate with TeamForge
Issue planning, Build and Test feedback loop
Validate changes before
Review
Fetch code from Git
Trigger build on changes
Build Android Gradle Projects
Progress Continuous
Delivery phase
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Mobile App build in Jenkins
Build on Jenkins- Git + Gradle plugin- Archive **/*-debug-*.apk
Test with Monkeyrunner - Develop Python test scripts- Run with Android emulator - Monkeyrunner plugin
Acceptance test on real devices (i.e. Test-cloud services on real handsets)
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Deliver on Mobile
1. Build status 2. Build artifacts
3. Download 4. Upgrade
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Inform Beta adopters on what's new
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Bring teams together
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Share kanban with stakeholders
1. Sprint progress
2. Cards status
3. Cards list 4. Cards details
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Notify problems in real-time
1. Test progress
2. Test results 3. Defects progress
4. Defects list
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Jenkins CI
Overall deployment
Jenkins Mobi API
Trello Plugin
CollabNet Plugin
HP-QC PlugIn
GitPlugin
Platform Backend
Pre-embeddedMobile App
JenkinsMobi v4 Beta
Private Network
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Challenges
Private vs Public networkJenkins and other ALM hardened in Local NetPublic gateway for JenkinsMobi API
Provisioning to JenkinsMobi clientsApplication upgrade (outside Google Play)In-App notification and steps
Managing feedback loop to ticketsIn-App feedback request with JenkinsMobi API
Education for high level stakeholders
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Q&A – share your experience
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Additional resourcesLuca Milanesiomail: [email protected] twitter:@gitenterprise
Mobile Application Lifecycle slides:slideshare.net/lucamilanesio
Continuous Agile e-book from A.Singleton:www.continuousagile.com/unblock
JenkinsMobi OpenSource Project:github.com/jenkinsci/jenkinsmobi-plugin
JenkinsMobi v4 Beta:jenkins-ci.mobi/#v4beta
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Copyright © 2013 –
Plus exclusively for the JUC 2013
+
=
Continuous agile on a stickgerritforge.com/contagile.vm.zip
Jenkins User ConferencePalo Alto , Oct 23 2013 @jenkinsconf
Thank You To Our SponsorsPlatinum
Gold
Silver