3. Source Code Links for Today‟s Session
• Mobile CI
– GitHub: MongoChess Server
– GitHub: StockFish for iOS
– GitHub: DroidFish for Android
– Jenkins Configuration for Mobile CI
• Google App Engine CI
– GitHub: Java Example for App Engine
– GitHub: Python Example for App Engine
3
5. Step 1: Sign Up with CloudBees
• Free and complete for developers
• One click to get started with Jenkins,
Play!, Lift, Scala, Sencha, Clojure,
Backbone.js and more: all you need is a
browser
www.cloudbees.com/signup
5
7. External Overview of CloudBees PaaS
cloudbees.com
Partner
Test Ecosystem
Forge Repositories
Git
Grand Session
Central Clustering
Web Jenkins
SVN Code Stage
Console Master
SDK mvn
Router
CloudBees Build
API Application
Jenkins
Executor MySQL
Developer and
Development Runtime End User
Operations
Services Services Interaction
Interaction
7
12. So what‟s Jenkins?
• Community-driven OSS project
– http://jenkins-ci.org/
– Used to be called Hudson
• A member project of SPI*
• Webapp written in Java
• Actively developed
– Over 7 years of history, 440+ releases
– 600+ plugins, 300+ developers
* Software in Public Interest, NPO. http://spi-inc.org/
12
13. Sample tasting on things you do w/Jenkins
• Build your Maven projects every time
someone commits a change
• FindBugs metric tracking. Ensure that # of
defects goes down
• Multi-platform concurrent Selenium test
execution
• IRC/jabber/campfire bot/notification
interface
• Emulator-based Android testing with
automatic emulator management
13
14. What makes Jenkins so popular?
• Community and its 600+ plugins
– Integrates Jenkins to just about any tools
you can imagine
– Or more precisely, the ecosystem and the
community that‟s capable of producing it
• Ease of installation, ease of use
• Distributed builds
– As a means to deal with abundance of
computing power
14
16. Why Jenkins in the Cloud for mobile CI?
• To let developers focus on developing
– Leave building, packaging, testing, distributing
to a computer
– Make the right thing the easiest thing
• Many, well-adopted mobile development
plugins
– Safety in numbers
• “Distributed builds” for scaling with workload
• “Matrix project” for easy cross device testing
16
17. Demo: Chess Server with Mobile Clients
• iOS mobile app
– Build/test using Jenkins
– MacOS slaves for builds
– TestFlight push to beta
testers
• Android mobile app
– Build/test using Jenkins
– Matrixed builds for multiple
device configs
• Java + MongoDB server
– Running on CloudBees PaaS
– Build/test/deploy via Jenkins
17
18. Fun App – but „Real‟ Java Development
• Built using Eclipse, Maven, Junit, JAX-RS, JAX-B,
gson …
• Git repository, Jenkins build/test and app deployment
all running on AWS using CloudBees PaaS
• Free to develop: enterprise-grade runtime services
18
19. Jenkins to the Rescue
iOS
Packaging/Distri Source Code
bution Repository
iOS TouchTest iOS Development
(Xcode)
Integration/Func
tional Testing Jenkins
iOS App
Build/Unit Test
Services Services
Deployment Development
Services (Eclipse)
Build/Unit Test
19
20. Jenkins in the Cloud: Android
• Android App built from GitHub
– Build/test by Jenkins entirely in the cloud
– Matrixed build supports multiple device
configs
– Build slaves for tethered devices
20
21. Jenkins in the Cloud: iOS Builds
• iOS App built from GitHub
– Jenkins Xcode builds/tests run on MacOS
slaves
– Scripted integration tests
– iOS app archive/packaging/distribution via
TestFlight using Jenkins plug-in
• Mobile CI Examples and Blogs online
– https://partnerdemo.ci.cloudbees.com/
– Full details on http://blog.cloudbees.com/
21
22. Continuous Delivery
for Google App Engine
with CloudBees and
Jenkins
blog.cloudbees.com
23. 1. You write the code
2. Jenkins builds and tests your
app in the cloud…
3. …and automatically
deploys to Google App
Engine
23
24. Step 1. Link your Google Account
http://appengine.cloudbees.com/
24
25. Step 2. Start Using Jenkins for App
Engine
http://appengine.cloudbees.com/
25
27. THANK YOU
mprichard@cloudbees.com
Twitter: @mqprichard
blog.cloudbees.com
Notas do Editor
Let’s start by a quick overview of how you experience the CloudBees PaaS today. We host and deliver a complete Java platform as a service to support you from development all the way through deployment of production applications. <Build> As a developer or person charged with operations of production applications, your unified view is through our GrandCentral web console. GrandCentral is really just a user interface on top of our rich API, which developers also access through our SDK or through our Eclipse plugin. <Build> For developers, we host a set of development services. These include the Jenkins Continuous Integration Server, used to drive builds, testing, and promoting or staging of your application as you check code and artifacts in to either our hosted Forge repositories. A unique feature of our hosted CI service is that we make use of cloud resources on-demand to speed up your builds and take care of the spiky nature of continuous integration at a very low cost. You can of course use your own source code control system, or an external one like GitHub. <Build> We then also provide a set of Runtime Services so you can deploy your application on your choice of JVM runtimes, and a hosted MySQL database service. Our session clustering service makes it simple to maintain Java session state between application instance, to ensure no loss of transactions in the event of failure, and make scale-out seamless. You can access your deployed application instantly, for testing or internal evaluation, or you can map your own domain names and URLs to your end users interact with the hosted application in the way you and they would normally expect. Both Development and Runtime Services are integrated with many hosted partner services, so fpr example, you get built-in access to best-of-breed monitoring, logging, and testing tools just by selecting them in Grand Central.Now, let’s step back and see what things look like under the covers – a peek into what we call our AnyCloud architecture that lets us really deliver this platform as a service.