Upload
benjamin-kyta
View
114
Download
6
Tags:
Embed Size (px)
Citation preview
B
My name is BenjaminI build cool web stuff
+256 794 600 025www.lutaaya.net [email protected]
@benjunni
Joe and Brenda are working on a project They each implement a few classes code them ensure they are well tested
Whey they're done, they Integrate them Everything breaks!
SCENARIO (COMMON)
That awkward moment near the end of the project when everyone realizes that none of their classes interoperate correctly
INTEGRATION HELL
Integration HELL is extremely risky for a project
Difficult to determine how long it will take to resolve the integration problems Exceeding the budget Exceeding the schedule
INTEGRATION HELL
Originated form eXtreme Programming (XP)Mitigates risks associated with integrating softwareAvoids integration hellIntegrate early and often
CONTINUOUS INTEGRATION (CI)
Originated form eXtreme Programming (XP)Mitigates risks associated with integrating softwareAvoids integration hellIntegrate early and often
CONTINUOUS INTEGRATION WORK FLOW
Written in JavaCI software Way to test code/functionality changes
Send out test results on pass/fail/other criteria
Manage deploymentsTons of plugins SVN/Git/Mercurial/Bazaar/etc
Selenium, Phing
Notifications
https://jenkins-ci.org/
JENKINS
Free and open source Version control system Can handle small to very large projects Fast and efficienthttps://git-scm.com
GIT
Benefits of a CI ServerDevelopers might forget to run the tests Dont break the build
It might take too long to run the testsWe might need to test the code in various environments Different architectures (32-bit/64-bit Intel, ARM, PowerPC)
Different platforms (Windows, Linux, Mac, Solaris, HP-UX, AIX)
BENEFITS OF A CI SERVER
Reports provide useful insights to the teamCan track metrics line line coverage Percentage of lines executed by the program's tests
Can run all sorts of utilities on your code checksyle, findbugs, ...
Can deploy automatically Deploy a web project to a staging server Deploy latest stable build of a desktop application to our website for download
BENEFITS OF A CI SERVER
Install JenkinsSet up a git server: (Can even use GitHub)Configure Git to notify Jenkins of the changesConfigure Jenkins to; Clone repository when notification received Build the project Run the project's tests Generate line coverage reports
TASKS INVOLVED
B
My name is BenjaminI build cool web stuff
+256 794 600 025www.lutaaya.net [email protected]
@benjunni