13
@benjunni CONTINUOUS INTEGRATION WITH JENKINS AND GIT

CONTINUOUS INTEGRATION WITH JENKINS AND GIT

Embed Size (px)

Citation preview

@benjunni

CONTINUOUS INTEGRATION WITH JENKINS AND GIT

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