Continuous Integration (Jenkins/Hudson)
-
Upload
dennys-hsieh -
Category
Documents
-
view
714 -
download
0
Transcript of Continuous Integration (Jenkins/Hudson)
![Page 1: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/1.jpg)
Continuous Integration(Jenkins/Hudson)
Dennys 謝松廷
![Page 2: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/2.jpg)
2
Agenda
• What’s Continuous Integration• Jenkins/Hudson
– Features– Plugin– Security Management
• Demo• Q&A
![Page 3: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/3.jpg)
3
What’s Continuous Integration?
• In software engineering, continuous integration (CI) implements continuous processes of applying quality control - small pieces of effort, applied frequently.Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.
Ref: http://en.wikipedia.org/wiki/Continuous_integration
![Page 4: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/4.jpg)
4
History
• Continuous Integration emerged in the Extreme Programming (XP) community, and XP advocates Martin Fowler and Kent Beck first wrote about continuous integration circa 1999.
![Page 5: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/5.jpg)
5
Continuous Integration
• Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.
-- Martin Fowler
Ref: http://martinfowler.com/articles/continuousIntegration.html
![Page 6: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/6.jpg)
6
Why Continuous Integration?
• Integration is hard, effort increase exponentially with– Number of components– Number of bugs– Time since last integration
Ref: http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson
![Page 7: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/7.jpg)
7
Continuous Integration Benefit
• Project Management– Detect system development problems earlier– Reduce risks of cost, schedule, and budget
• Code Quality– Measurable and visible code quality– Continuous automatic regression unit test
![Page 8: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/8.jpg)
8
Best Practice of CI
• Single Source Repository.• Automate the Build and Test• Everyone Commits Every Day• Keep the Build Fast• Everyone can see what's happening• Automate Deployment (Optional)
![Page 9: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/9.jpg)
9
Continuous Integration Tools
Ref: http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software
![Page 10: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/10.jpg)
Jenkins/Hudson
![Page 11: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/11.jpg)
11
What’s Jenkins/Hudson
1.An open source CI server
2.More then 23000 installations (Jul 2010)
3.Plug-in extensibility (Over 370 plugins)
4.MIT license
![Page 12: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/12.jpg)
12
Continuous Integration Overview
Ref: http://www.javaworld.com/javaworld/jw-12-2008/images/CIOverview.jpg
![Page 13: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/13.jpg)
13
CI Tool Usage
Ref: http://java.dzone.com/node/28241/results Ref:http://www.wakaleo.com/resources/polls
• Total vote: 643
• First Vote: 2010/02/12• Last Vote: 2011/03/08
![Page 14: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/14.jpg)
14
Jenkins v.s.Hudson
• Jenkins: Original Hudson team
• Hudson: Oracle and Sonatype
• Ref: http://jenkins-ci.org/content/hudsons-future
![Page 15: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/15.jpg)
15
Jenkins Features
• Trigger a build
• Get source code from repository
• Automatically build and test
• Generate report & notify
• Deploy
• Distributed build
![Page 16: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/16.jpg)
16
Jenkins Requirement
• Web Server (Tomcat, WebLogic, …)
• Build tool (Maven, Ant)
• SCM (Git, Svn, Cvs, …)
![Page 17: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/17.jpg)
17
Jenkins Plugins
• Build triggers• Source code management• Build tools• Build wrappers• Build notifiers• Build reports• Artifact uploaders• UI plugins• Authentication and user management
![Page 18: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/18.jpg)
18
Build Trigger
• Manually click build button
• Build periodically
• Build whenever a SNAPSHOT dependency is built
• Build after other projects are built
• Poll SCM
• IRC, Jabber, …
![Page 19: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/19.jpg)
19
Get Source Code (1/2)
• CVS (build-in)
• SVN (build-in)
• GIT (requires Git)
• ClearCase (requires ClearCase)
• Mercurial, PVCS, VSS, …
![Page 20: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/20.jpg)
20
Get Source Code (2/2)
• Get current snapshot
• Get baseline (tag)
![Page 21: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/21.jpg)
21
Code Change History
![Page 22: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/22.jpg)
22
Build Tools
• Java– Maven (build-in), Ant, Gradle
• .Net– MSBuild, PowerShell
• Shell script– Python, Ruby, Groovy
![Page 23: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/23.jpg)
23
Build Wrapper
• Build name (version no) setter
• Virtual machine (VMWare, Virtual Box)
• Set environment variable
• ClearCase release plugin
• …
![Page 24: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/24.jpg)
24
Build Notifier
• Jabber
• IRC
• RSS
• Google calendar
• …
![Page 25: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/25.jpg)
25
Build Report
• Static Code Analysis– Checkstyle, PMD, Findbugs, Compiler
Warning
• Test Report & Code Coverage– JUnit, TestNG, Cobertura, Clover
• Open Tasks
![Page 26: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/26.jpg)
26
Static Code Analysis
![Page 27: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/27.jpg)
27
CheckStyle
![Page 28: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/28.jpg)
28
FindBugs
![Page 29: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/29.jpg)
29
Open Tag
![Page 30: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/30.jpg)
30
Duplicate Code
![Page 31: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/31.jpg)
31
Test Report
![Page 32: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/32.jpg)
32
Test Code Coverage
Ref: http://cobertura.sourceforge.net/sample/
![Page 33: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/33.jpg)
33
Artifact uploaders
• Tomcat
• JBoss
• Glassfish
• WebSphere
• FTP
• SSH
![Page 34: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/34.jpg)
34
UI Enhancement
• Dashboard
• Sectioned view
• iPhone/Android
![Page 35: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/35.jpg)
35
Security Management
• Security Realm– LDAP– Jenkins's own user database– Delegate to servlet container
• Authorization– Anyone can do anything– Logged-in users can do anything– Matrix-based security– Project-based Matrix Authorization Strategy– Legacy mode
![Page 36: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/36.jpg)
36
Security Management
• Matrix-based security
• Project-based Matrix Authorization
![Page 37: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/37.jpg)
37
Security Management Plugins
• Active directory, OpenID, MySQL, …
• Role based privilege control
![Page 38: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/38.jpg)
38
Plugin Usage Statistics
Ref: http://jenkins-ci.org/content/updated-usage-stats-available
![Page 39: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/39.jpg)
39
Features Not Mentioned
• Matrix project
• Distributed build
![Page 40: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/40.jpg)
Demo
![Page 41: Continuous Integration (Jenkins/Hudson)](https://reader035.fdocuments.in/reader035/viewer/2022062318/5517bf0549795968658b4740/html5/thumbnails/41.jpg)
41
Questions & Answers