Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins...

Preview:

Citation preview

Jenkins Continuous Integration

Build System

Software development common problems

• Integration problems

• Defects are detected very late

• Test execution and maintaining

• Relevance of testing environment

• …

2

Continuous Integration

• CI is a development practice that requires

developers/testers to integrate their work

frequently into a shared repository several times

a day.

• Each integration is

performed by automated

build

3

What CI can do ?

4

Continuous

Integration

Compile

Functional

testing

Deploy

Unit testing

DB

integration

Label code

Notify

Report

Meet Jenkins

Award-winning application that monitors

executions of repeated jobs:

• Building/testing

software projects

continuously

• Monitoring

executions of

externally-run jobs

5

History

• 2005 – Hudson was first released by Kohsuke

Kawaguchi of Sun Microsystems.

• 2010 – Oracle bought

Sun Microsystems

– Due to a naming dispute,

Hudson was renamed

to Jenkins

– Oracle continued development of Hudson (as a

branch of the original)

6

Basic feature set

Easy install, upgrade and configure.

Check out source code: CVS, Subversion, ClearCase, Mercurial, Accurev, Perforce, Git…

Do builds: Ant, Maven, shell script, NAnt, ..

Record and publish results.

HTTP API.

Tools integration: Findbugs, cobertura, emma, …

Plugin support, update center, 400+ plugins

Groovy script console, cli

7

Over 400 plugins

Authentication: LDAP, AD, OpenID, SQL,...

Trac, GitHub, Jira, Remine: trackers

Selenium, Sauce, Windmill: functional, click

testing

Libvert, VirtualBox, Vmware: test in VM

Xvnc: UI testing

Android emulation

You can extend Jenkins by yourself

8

Distributed builds

Master + slave nodes

Start Master-only, add slaves later

Slaves launched by ssh, WMI+DCOM custom

script, Java Web Start(JNLP)

Slaves can be on different platforms

Allows build/testing on different OS

9

How developers use Jenkins ?

10

Developers

Code

repository

Test

reports

Static code

analysis

Artifact

repository

Deployment

How QA use Jenkins ?

11

Testers

Test code

repository

Test

reports

Artifact

repository

Static code analysis report examples

12

• New and fixed warnings per build, fixed in blue, new in red

• Total number of warnings (with auto scaled range)

Static code analysis report examples

13

• Warnings and source code visualization

Testing specific report examples

14

• Test result trend

• Code coverage trend

Coverage detailed report

15

Cucumber report example

16

Emailing

17

• Email-ext plugin usage

Other CI tools

18

and much more...

Jenkins in comparison with others

Good file configuration structure

Fully customizable using web UI

Completely free

Quick critical bug fixing

It’s easy to write plugins

New version produces new defects

Downgrade troubles

Configuration effort

19

What do people use ?

20

0

100

200

300

400

500

600

ApacheContinuum

Bamboo TeamCity Hudson/Jenkins CruiseControl Other Work without CI

Free voting at habrahabr.ru: 1007

Who uses Jenkins?

21

Companies:

Avid

Ebay

Motorola

Mobility(Google)

Yahoo!

GitHub

Open Source Projects:

Apache

Jboss

Ubuntu

OpenSUSE

Mozilla

RH Openshift

Jenkins

Job postings trend

22

Searching a job on Indeed.com

Jenkins goods

23

Recommended