EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

20
www.equalexperts.com Continuous Integration using Jenkins Vikram Shitole [email protected] om

description

This presentation was part of EXPERTALKS: Apr 2012 conducted at Equal Experts India on 21st Apr 2012. Visit http://meetup.com/expertalks to know more... ------------------------------------------------------------------------------------- This presentation discusses the concept of Continuous Integration (CI). It also focuses on how the tool Jenkins helps achieve CI on web application development projects.

Transcript of EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

Page 1: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Continuous Integration using Jenkins

Vikram [email protected]

Page 2: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

What have you done before?

Page 3: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

Dev – The functionality is working on my

machine

QA – Its not working on my machine :(

Page 4: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

Dev – I have taken the updates and the code

is not compiling

Team – no idea :(

Page 5: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

QA – This functionality is not working

Dev – I have checked yesterday, It was

working.

QA – But not now

Page 6: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

BA/Product Owner – Can I see the current

application ?

Dev/QA – Give us some time

Page 7: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

Architect – Don't worry about integrating to a

third part service now, will look at it before

releasing it

Dev – As you say

Page 8: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Are you familiar with these?

QA – Application is very flaky, it suddenly

stops working

Team – ?

Page 9: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

What solves all these problems ?

Continuous Integration !!!

Page 10: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Continuous Integration - Cycle

Page 11: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Continuous Integration – Best Practices

Maintain a code repository

Automate the build

Make the build self-testing

Every commit should be built

Keep the build fast

Test in a clone of a production environment

Everyone can see the results of the latest build

Automate deployment

Page 12: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Advantages Developer detect and fix integration problem

continuously

Early warning of broken/incompatible code

Early warning of conflicting changes

Immediate unit testing of all changes

Constant availability of a “current” build for

testing/demo/release

Useful metrics generated – e.g. code coverage

Page 13: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins

Page 14: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins for Continuous Integration

Open Source

Easy to install

Easy to use

Multi-technology

Multi-platform

Widely used

Extensible

Free

Page 15: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins for a Developer Easy to install

Download one file – jenkins.war

Run one command – java –jar jenkins.war

Easy to use

Create a new job – checkout and build a small project

Checkin a change – watch it build

Create a test – watch it build and run

Fix a test – checkin and watch it pass

Multi-technology

Build C, Java, C#, Python, Perl, SQL, etc.

Test with Junit, Nunit, MSTest, etc.

Page 16: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

More Power – Jenkins Plugins

Software configuration management

Builders

Test Frameworks

Notifiers

Static Analyzers

Page 17: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins Plugins - SCMVersion Control Systems

Accurev Bazaar BitKeeper ClearCase Darcs Dimensions Git Harvest MKS Integrity PVCS StarTeam Subversion Team Foundation Server Visual SourceSafe

Page 18: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins Plugins – Analyzers

Static Analysis

Checkstyle CodeScanner DRY Crap4j Findbugs PMD Fortify Sonar FXCop

Code Coverage

Emma Cobertura Clover GCC/GCOV

Page 19: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Jenkins Plugins – Other Tools

Notification

Twitter Campfire Google Calendar IM IRC Lava Lamp Sounds Speak

Authorization

Active Directory LDAP

Virtual Machines

Amazon EC2 VMWare VirtualBox Xen Libvirt

Page 20: EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

www.equalexperts.com

Thank You !!!

Vikram [email protected]