24
Jenkins Continuous Integration Build System

Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

  • Upload
    others

  • View
    31

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Jenkins Continuous Integration

Build System

Page 2: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Software development common problems

• Integration problems

• Defects are detected very late

• Test execution and maintaining

• Relevance of testing environment

• …

2

Page 3: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 4: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

What CI can do ?

4

Continuous

Integration

Compile

Functional

testing

Deploy

Unit testing

DB

integration

Label code

Notify

Report

Page 5: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Meet Jenkins

Award-winning application that monitors

executions of repeated jobs:

• Building/testing

software projects

continuously

• Monitoring

executions of

externally-run jobs

5

Page 6: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 7: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 8: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 9: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 10: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

How developers use Jenkins ?

10

Developers

Code

repository

Test

reports

Static code

analysis

Artifact

repository

Deployment

Page 11: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

How QA use Jenkins ?

11

Testers

Test code

repository

Test

reports

Artifact

repository

Page 12: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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)

Page 13: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Static code analysis report examples

13

• Warnings and source code visualization

Page 14: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Testing specific report examples

14

• Test result trend

• Code coverage trend

Page 15: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Coverage detailed report

15

Page 16: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Cucumber report example

16

Page 17: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Emailing

17

• Email-ext plugin usage

Page 18: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Other CI tools

18

and much more...

Page 19: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 20: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

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

Page 21: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Who uses Jenkins?

21

Companies:

Avid

Ebay

Motorola

Mobility(Google)

Yahoo!

GitHub

Open Source Projects:

Apache

Jboss

Ubuntu

OpenSUSE

Mozilla

RH Openshift

Jenkins

Page 22: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Job postings trend

22

Searching a job on Indeed.com

Page 23: Jenkins Continuous Integration Build Systemacse.fpm.kpi.ua/presentations/CI-Jenkins.pdf · Jenkins Continuous Integration Build System . Software development common problems •Integration

Jenkins goods

23