EXPERTALKS: Apr 2012 - Continuous Integration using Jenkins

Preview:

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.

Citation preview

www.equalexperts.com

Continuous Integration using Jenkins

Vikram Shitolevshitole@equalexperts.com

www.equalexperts.com

What have you done before?

www.equalexperts.com

Are you familiar with these?

Dev – The functionality is working on my

machine

QA – Its not working on my machine :(

www.equalexperts.com

Are you familiar with these?

Dev – I have taken the updates and the code

is not compiling

Team – no idea :(

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

www.equalexperts.com

Are you familiar with these?

BA/Product Owner – Can I see the current

application ?

Dev/QA – Give us some time

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

www.equalexperts.com

Are you familiar with these?

QA – Application is very flaky, it suddenly

stops working

Team – ?

www.equalexperts.com

What solves all these problems ?

Continuous Integration !!!

www.equalexperts.com

Continuous Integration - Cycle

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

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

www.equalexperts.com

Jenkins

www.equalexperts.com

Jenkins for Continuous Integration

Open Source

Easy to install

Easy to use

Multi-technology

Multi-platform

Widely used

Extensible

Free

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.

www.equalexperts.com

More Power – Jenkins Plugins

Software configuration management

Builders

Test Frameworks

Notifiers

Static Analyzers

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

www.equalexperts.com

Jenkins Plugins – Analyzers

Static Analysis

Checkstyle CodeScanner DRY Crap4j Findbugs PMD Fortify Sonar FXCop

Code Coverage

Emma Cobertura Clover GCC/GCOV

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

www.equalexperts.com

Thank You !!!

Vikram Shitolevshitole@equalexperts.com

Recommended