who let the robot out? - building high quality software with continuous integration

20
Who let the robot out? Building high quality software with Continuous Integration Timo Stollenwerk

Upload: plone-foundation

Post on 08-May-2015

592 views

Category:

Technology


2 download

DESCRIPTION

Continuous Integration is a software development practice where members of a team integrate their work frequently into a code repository. Each integration is verified by an automated build process that includes different kinds of tests and code quality measurements to detect errors and code quality violations as quickly as possible. This talk will introduce the principles of Continous Integration and show how to set up a Python/Plone project with a CI-Server as a central component of the development process.

TRANSCRIPT

Page 1: Who let the robot out? - Building high quality software with Continuous Integration

Who let the robot out?Building high quality softwarewith Continuous Integration

Timo Stollenwerk

Page 2: Who let the robot out? - Building high quality software with Continuous Integration

Wishful Thinking

In Time

In Budget

Bug Free

Readable Code

Maintainable Code

Documented

Fast

Working

Page 3: Who let the robot out? - Building high quality software with Continuous Integration

Real Life

Broken build

It works on my machine

Not deployable

Bad performance

Unmaintainable code

Over time

Over budget

Page 4: Who let the robot out? - Building high quality software with Continuous Integration

Assumption is the mother of all screw-ups

Page 5: Who let the robot out? - Building high quality software with Continuous Integration

Software Quality?!

Page 6: Who let the robot out? - Building high quality software with Continuous Integration

Basic Ideas

Page 7: Who let the robot out? - Building high quality software with Continuous Integration

Do not break things

Page 8: Who let the robot out? - Building high quality software with Continuous Integration

If things are broken, don't make it more complicated

Page 9: Who let the robot out? - Building high quality software with Continuous Integration

If you broke the build, fix it as soon as possible

Page 10: Who let the robot out? - Building high quality software with Continuous Integration

Getting Started

Post-commit hook

Failure / Fix

Page 11: Who let the robot out? - Building high quality software with Continuous Integration

Tests

collective.xmltestreport / Jenkins Cobertura Plugin

Page 12: Who let the robot out? - Building high quality software with Continuous Integration

Acceptance Tests

RobotFramework

Jenkins Robot Plugin / Saucelabs

Page 13: Who let the robot out? - Building high quality software with Continuous Integration

Code Analysis

buildout.jenkins / plone.recipe.codeanalysis / Jenkins Violations Plugin

Page 14: Who let the robot out? - Building high quality software with Continuous Integration

Performance Tests

Jenkins jMeter Plugin

Page 15: Who let the robot out? - Building high quality software with Continuous Integration

Documentation

Sphinx / Robot / Build Step

Page 16: Who let the robot out? - Building high quality software with Continuous Integration

Notifications

Jenkins Ext-Email Plugin / Jenkins Dashboard Plugin

Page 17: Who let the robot out? - Building high quality software with Continuous Integration

Continuous Deyploment

Jenkins Build Pipeline Plugin

Page 18: Who let the robot out? - Building high quality software with Continuous Integration

What do we get?

In Time

In Budget

Bug Free

Readable Code

Maintainable Code

Documented

Fast

Working

Page 19: Who let the robot out? - Building high quality software with Continuous Integration

Who let the robot out?

Timo StollenwerkIRC: [email protected]

Building high quality softwarewith Continuous Integration

Page 20: Who let the robot out? - Building high quality software with Continuous Integration

● Robot: http://www.flickr.com/photos/jerry_reynolds/2538180907

● Dark Sky: http://www.flickr.com/photos/psychoscheiko/5812349452

● Lego: http://www.flickr.com/photos/ogimogi/2253657555

● Broken Glass: http://www.flickr.com/photos/akeg/2230862848

Image Credits