Upload
expertalks
View
783
Download
0
Embed Size (px)
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
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