continuous integration with jenkins

33
Continuous Integration with Jenkins 中華電信研究院 黃培棠 [email protected] 2013/03/14

Upload: pei-tang-huang

Post on 06-May-2015

907 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Continuous integration with jenkins

Continuous Integration

with Jenkins

中華電信研究院 黃培棠

[email protected]

2013/03/14

Page 2: Continuous integration with jenkins

2

Page 3: Continuous integration with jenkins

3

Just one click!

Page 5: Continuous integration with jenkins

5

Fail Early,

Fail Fast,

Fail Often.

Page 6: Continuous integration with jenkins

Continuous Integration

It is the practice of merging

all developer workspaces

with a shared mainline

several times a day.

6 http://en.wikipedia.org/wiki/Continuous_integration

Page 7: Continuous integration with jenkins

Continuous What?

• Build

• Test – Unit tests, integration tests…

• Analysis

• Feedback

• Publish

• Deploy

• ... most tedious things!

7

Page 8: Continuous integration with jenkins

What To Be Integrated?

• People

• Code

• Environment

• Report

• Thought

• ... everything valuable!

8

Page 10: Continuous integration with jenkins

10 Jez Humble, David Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation,

2010, Addison-Wesly

Page 11: Continuous integration with jenkins

11 Jez Humble, David Farley, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation,

2010, Addison-Wesly

Page 12: Continuous integration with jenkins

Ticket for CI

• SCM system

• Build scripts/tools

• Automated test cases

• Artifact repository

• Fast, highly available machines

• Open-minded members

12

Page 14: Continuous integration with jenkins

14 Paul M. Duvall et al, Continuous Integration: Improving Software Quality and Reducing Risk, 2007, Addison-Wesley

Page 15: Continuous integration with jenkins

Jenkins

Introducing to Butler with Bowtie:

15

Page 16: Continuous integration with jenkins

Personal Information

• Child of Kohsuke Kawaguchi (川口耕介)

• Renamed from Hudson

– Had cosmetic surgery at the same time

16 portrait before the surgery

Page 17: Continuous integration with jenkins

Skills

• 耐操、有擋頭

– 不遲到、不早退

– 不會亂吠

• 專心

– 不會上 facebook, YouTube

• 記性好

– 不會忘了改什麼設定,或忘了按 commit 就下班

• 便宜

17

Page 19: Continuous integration with jenkins

19

Page 20: Continuous integration with jenkins

Built-in Plugins

20

Page 21: Continuous integration with jenkins

Work Behind Proxy

21 Is it really a part of Update Center?

Page 22: Continuous integration with jenkins

Thanks Maven POM

22

Page 23: Continuous integration with jenkins

Just Tell Him What to Build

23

Page 24: Continuous integration with jenkins

CI Practices

• Everyone commits at least once a day.

• Keep the build fast.

– An unit test is just an UNIT test.

– Replace dependencies with mocks.

• 100% of tests must pass for every build.

• Fixing broken builds is of the highest priority.

• Someone review reports generated by the build.

24 http://www.martinfowler.com/articles/continuousIntegration.html & Paul M. Duvall et al, Continuous Integration

Page 25: Continuous integration with jenkins

25

Action!

Page 26: Continuous integration with jenkins

Jenkins++

26

Page 28: Continuous integration with jenkins

• Gravatar - Globally Recognized Avatar

• Register your own avatar

– at https://en.gravatar.com/

• Easy identification easy

28

Page 29: Continuous integration with jenkins

Static Code Analyses

29

• Checkstyle

• DRY

• FindBugs

• PMD

• Compiler Warnings

• Task Scanner

– TODO, FIXME, XXX...

Page 30: Continuous integration with jenkins

Disk Usage

• Keep watching!

30

Page 31: Continuous integration with jenkins

CI Game

31

• Go top!

Page 32: Continuous integration with jenkins

Build Pipeline

32