Jenkins - cluedenver.orgcluedenver.org/presentations/Jenkins.pdf · History 2 February 11, 2013 •...
Transcript of Jenkins - cluedenver.orgcluedenver.org/presentations/Jenkins.pdf · History 2 February 11, 2013 •...
Jenkins
February 11, 2013
@ChrisHirsch Griz Bates
History
February 11, 2013 2
• Hudson was a popular alternative to CruiseControl in 2008 • Hudson was “owned” by Sun but they didn’t trademark the name • Once Oracle bought Sun, they claimed the name to Hudson • Community rallied and forked Hudson into Jenkins • Once that happened, the project took off and nobody has ever looked
back. • Don’t believe me? Google for Hudson and Google for Jenkins. • http://jenkins-ci.org/
License
February 12, 2013 3
• MIT • http://opensource.org/licenses/MIT
– Open, permissive,
Uses
February 11, 2013 4
• Continuous Build – Build your project on EACH CHECKIN • Continuous Testing – Run through unit tests on EACH CHECKIN • Continuous Release – Run through integration tests and possibly push
to production on EACH CHECKIN
Continuous Integration
February 11, 2013 5
• Continuous integration (CI) is the practice, in software engineering, of merging all developer workspaces with a shared mainline several times a day.
• http://en.wikipedia.org/wiki/Continuous_integration
Continuous Deployment
February 11, 2013 6
• http://en.wikipedia.org/wiki/Continuous_delivery
Plugins
February 11, 2013 7
• http://wiki.jenkins-ci.org/display/JENKINS/Plugins • Must Have Plugins
– Chuck Norris – Beer Plugin – Emotional Jenkins Plugin – Lava Lamp – Leader Board – Sonar
Reporting
February 11, 2013 8
• Graphs can show pretty much anything • Build Failures • Code Coverage • LOC Change (Sonar)
I’m sold! Now What?
February 11, 2013 9
• Need to install • Bring up the UI • Create your project and you’re off!
Installation
February 12, 2013 10
/etc/yum.repos.d/jenkins.repo [jenkins] name=Jenkins baseurl=http://pkg.jenkins-ci.org/redhat gpgcheck=1 • yum install jenkins • Updates are done though the GUI after that
Integration with Mercurial
February 12, 2013 11
[web] description = Web Services contact = A Developer <[email protected]> [hooks] pretxnchangegroup.PhpSyntax = /home/local/hg/hooks/phplint changegroup.jenkins = /home/local/hg/hooks/build-ci -b -u http://jenkins.mcafeesaas.com:8080 multiPlatformBuilder project=webService
Creating a Project
February 12, 2013 12
• Can be GUI driven or CLI/API • Choose your CM tool • Choose your build trigger • http://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
Jenkins API
February 12, 2013 13
• Retrieve Information from Jenkins • Trigger a new build • Create/Copy Jobs • http://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
Integrating your New Pi
February 12, 2013 14
• Grab your Pi’s and lets get crackin’ • Lava Lamp Notifier • Stop Light Notifier • Literally 100’s more
Let’s show it!
February 11, 2013 15
Questions?
February 11, 2013 16