continuous integration meetup

18
Palomino Labs, Inc. palominolabs.com Continuous Integration, Agile, and Jenkins, Oh My!

Upload: drew-stephens

Post on 15-Jun-2015

315 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Continuous integration meetup

Palomino Labs, Inc. palominolabs.com

Continuous Integration, Agile, and Jenkins, Oh My!

Page 2: Continuous integration meetup
Page 3: Continuous integration meetup

Title Goes Here

Page 4: Continuous integration meetup

Why Continuous Integration?

• Desire be lean & agile

• Google does it

• Small startups do it

• Everyone talks about it

• VP read a blog post

Page 5: Continuous integration meetup

It’s About Efficiency

Page 6: Continuous integration meetup

Eliminate Waste

• Bugs are bad

• Tests prevent bugs

• Tests find bugs early

Page 7: Continuous integration meetup

One Piece Flow

• Eliminate need to revisit features

Source: 1991, Gerald Weinberg, Quality Software Management: Systems Thinking

Page 8: Continuous integration meetup

One Piece Flow

• Eliminate need to revisit features

• Faster shipping = more money

Page 9: Continuous integration meetup

One Piece Flow

• Eliminate need to revisit features

• Faster shipping = more money

• More money = happiness

Page 10: Continuous integration meetup

This Is Where Jenkins Comes In

• Tests runs must be automatic

• Stop the line

• No false positives

• Failures must be visible

Page 11: Continuous integration meetup

Notify on Failure

• Email team on failure

Page 12: Continuous integration meetup

Setting Up a New Machine

• AWS? Use EBS

• Allows snapshotting & embiggening

• Ubuntuwget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'

sudo apt-get update

sudo apt-get install jenkins

• RHEL/CentOS/Amazon Linuxsudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

Page 13: Continuous integration meetup

A Good Jenkins setup

• Do all of your work in a script

• Check script into source control

• Rejoice when a mistake is made

Page 14: Continuous integration meetup

Rails Run Script

Page 15: Continuous integration meetup

Run All Of Your Tests

Page 16: Continuous integration meetup

Tests Dependent Upon Other Systems

Details: http://blog.palominolabs.com/2013/05/06/ruby-testing-and-external-dependencies/

Page 17: Continuous integration meetup

Bonuses

• HIPAA compliance

• Performance tests over time

Page 18: Continuous integration meetup

Palomino Labs, Inc. palominolabs.com

Drew Stephens

[email protected]

@dinomite