Jenkins Build System
Executive summary
• Continuousintegrationsystemsareavitalpartofany
Agile teambecausetheyhelpenforcetheidealsof
Agile development
• Jenkins, acontinuousbuildtool, enablesteamsto
focuson theirworkbyautomatingthebuild, artifact
management, and deploymentprocesses
• Jenkins’corefunctionalityandflexibility allowitto
fit ina varietyofenvironmentsandcanhelpstreamline
the development process forallstakeholders involved
Agenda
ContinuousIntegration (CI)
Whatis it?
What arethebenefits?
ContinuousBuild Systems
Jenkins
Whatis it?
Wheredoes itfit in?
Why should Iuseit?
What can itdo?
How does itwork?
Whereis it used?
How can Igetstarted?
Puttingitall together
Conclusion
References
CI - Defined
“ContinuousIntegrationisasoftwaredevelopmentpractice
wheremembersofateamintegratetheirworkfrequently,
usuallyeachpersonintegratesatleastdaily- leadingto
multipleintegrationsperday.Eachintegrationisverifiedby
anautomatedbuild(includingtest)todetectintegration
errors asquickly aspossible”– MartinFowler
CI – What does it really mean?
Ataregularfrequency(ideallyateverycommit),thesystem
is:
Integrated
Allchanges upuntilthat point arecombined intotheproject
Built
Thecodeis compiledintoanexecutableor package
Tested
Automated testsuites arerun
Archived
Versioned andstored so itcan be distributedasis, ifdesired
Deployed
Loaded ontoasystem where the developers caninteractwithit
CI - Workflow
Code
Repository
Developers
Continuous
BuildSystem
Artifact
Repository
Test
Reports
Deployment
Source&Tests
Regular
Interval Executable/
Package
TestingResults
CI – Benefits
• Immediate bugdetection
• No integration step in thelifecycle
• A deployable system at any givenpoint
• Recordofevolution ofthe project
CI – The tools
• Code Repositories
• SVN, Mercurial,Git
• ContinuousBuild Systems
• Jenkins,Bamboo,Cruise Control
• TestFrameworks
• JUnit,Cucumber,CppUnit
• Artifact Repositories
• Nexus,Artifactory,Archiva
Jenkins
Branched fromHudson
Java basedContinuousBuild System
Runs in servletcontainer
Glassfish,Tomcat
Supported byover 400plugins
SCM,Testing,Notifications,Reporting,
ArtifactSaving,Triggers,External
Integration
Underdevelopment since 2005
http://jenkins-ci.org/
Jenkins - History
• 2005- HudsonwasfirstreleasebyKohsuke
Kawaguchiof SunMicrosystems
• 2010 – Oraclebought SunMicrosystems
• Duetoanaming dispute,Hudson wasrenamed to Jenkins
• OraclecontinueddevelopmentofHudson(asabranchofthe original)
Jenkins – Fitting in
Code
Repository
Developers
Artifact
Repository
Test
Reports
Deployment
Source&Tests
Regular
Interval Executable/
Package
TestingResults

Jenkins Build System