jenkins (war)stories

37
Jenkins (War)stories Toomas Römer ZeroTurnaround Tartu, Estonia @toomasr Thursday, October 10, 13

Upload: toomas-roemer

Post on 10-May-2015

480 views

Category:

Technology


0 download

DESCRIPTION

Gave a presentation at the Software Engineering Guild of Tartu

TRANSCRIPT

Page 1: Jenkins (war)stories

Jenkins (War)stories

Toomas RömerZeroTurnaroundTartu, Estonia

@toomasr

Thursday, October 10, 13

Page 2: Jenkins (war)stories

Why this talk?

• Logical step from previous unit test topic

• I’m a Jenkins fanboy :)

• Maybe I can inspire you!?

2

Thursday, October 10, 13

Page 3: Jenkins (war)stories

Why talk about Jenkins?

• First Jenkins installation in 2008– Have administered

– Have used as a developer

– Have developed plugins for it

– Still using daily but more like a manager

– Good friends with Cloudbees people

3

Thursday, October 10, 13

Page 4: Jenkins (war)stories

What have I done with Jenkins?

Built-tested-released software

Implemented continuous delivery

Updated websites (docs, changelogs etc.)

Propagating code or binary artifacts

Workflow management

Thursday, October 10, 13

Page 5: Jenkins (war)stories

Why so popular?

Authentication

Authorization

Logging

Notifications

Distributed

Thursday, October 10, 13

Page 6: Jenkins (war)stories

Cron on Steroids

Thursday, October 10, 13

Page 7: Jenkins (war)stories

Enterprise Cron

Thursday, October 10, 13

Page 8: Jenkins (war)stories

Background - 2013

300 600 jobs

8 20 dedicated machines

Amazon ~7000 instance-hour per month

3 4 in house plugins developed, 2 abandoned

Custom dashboard (35 x 215 grid)

Thursday, October 10, 13

Page 9: Jenkins (war)stories

Jenkins Overlords

• Jenkins Overlord– Actually his name is Juri

• Each project has a goto guy– Works with Juri when something

bad happens, also known as an Overlord :)

9

Thursday, October 10, 13

Page 10: Jenkins (war)stories

Stories

Stories–Managing the cluster– Functional Tests–Servlet Tests– The API–Random thoughts

Thursday, October 10, 13

Page 11: Jenkins (war)stories

Managing the cluster

11

Thursday, October 10, 13

Page 12: Jenkins (war)stories

Managing the cluster

12

Thursday, October 10, 13

Page 13: Jenkins (war)stories

Managing the cluster

• Lots of projects but 1 Jenkins cluster– Java– Application server X– Database server X– Framework X– PHP/Python/Groovy/SBT/Maven– Play Framework– Android– Eclipse– ....

13

Thursday, October 10, 13

Page 14: Jenkins (war)stories

Managing the cluster

14

Thursday, October 10, 13

Page 15: Jenkins (war)stories

Managing the cluster

15

Thursday, October 10, 13

Page 16: Jenkins (war)stories

Functional Tests

16

Thursday, October 10, 13

Page 17: Jenkins (war)stories

JRebel Functional JDK Tests

Thursday, October 10, 13

Page 18: Jenkins (war)stories

JRebel Functional JDK Tests

Thursday, October 10, 13

Page 19: Jenkins (war)stories

JRebel Functional JDK Tests

Per JDK– Per functional test

• Compile couple of classes• Run some methods and assert• Recompile couple of classes• Run some methods and assert• …

Thursday, October 10, 13

Page 20: Jenkins (war)stories

JRebel Functional JDK Tests

Which Jenkins feature is the best fit here?

Thursday, October 10, 13

Page 21: Jenkins (war)stories

JRebel Functional JDK Tests

Thursday, October 10, 13

Page 22: Jenkins (war)stories

JRebel Functional JDK Tests

Groovy Script

Thursday, October 10, 13

Page 23: Jenkins (war)stories

JRebel Functional JDK Tests

Thursday, October 10, 13

Page 24: Jenkins (war)stories

JRebel Functional JDK Tests

How to get test results? Jenkins feature…

Thursday, October 10, 13

Page 25: Jenkins (war)stories

JRebel Functional JDK Tests

Output JUnit XML!

Thursday, October 10, 13

Page 26: Jenkins (war)stories

JRebel Functional JDK Tests

Thursday, October 10, 13

Page 27: Jenkins (war)stories

Jenkins API

27

Thursday, October 10, 13

Page 28: Jenkins (war)stories

API

• Java/JavaScript/Python and others

• Super easy to get started (show demo)

• Retrieve info about Jenkins

• Trigger builds

• Create/copy jobs

28

Thursday, October 10, 13

Page 29: Jenkins (war)stories

29

Thursday, October 10, 13

Page 30: Jenkins (war)stories

30

Thursday, October 10, 13

Page 31: Jenkins (war)stories

Custom Dashboard

Thursday, October 10, 13

Page 32: Jenkins (war)stories

Random thoughts

32

Thursday, October 10, 13

Page 33: Jenkins (war)stories

There is an app plugin for that

Thursday, October 10, 13

Page 34: Jenkins (war)stories

Green Balls

34

Thursday, October 10, 13

Page 35: Jenkins (war)stories

Green Balls

34

Thursday, October 10, 13

Page 36: Jenkins (war)stories

Prep releases

Thursday, October 10, 13

Page 37: Jenkins (war)stories

Q & A

Thursday, October 10, 13