continuous integration meetup
TRANSCRIPT
Palomino Labs, Inc. palominolabs.com
Continuous Integration, Agile, and Jenkins, Oh My!
Title Goes Here
Why Continuous Integration?
• Desire be lean & agile
• Google does it
• Small startups do it
• Everyone talks about it
• VP read a blog post
It’s About Efficiency
Eliminate Waste
• Bugs are bad
• Tests prevent bugs
• Tests find bugs early
One Piece Flow
• Eliminate need to revisit features
Source: 1991, Gerald Weinberg, Quality Software Management: Systems Thinking
One Piece Flow
• Eliminate need to revisit features
• Faster shipping = more money
One Piece Flow
• Eliminate need to revisit features
• Faster shipping = more money
• More money = happiness
This Is Where Jenkins Comes In
• Tests runs must be automatic
• Stop the line
• No false positives
• Failures must be visible
Notify on Failure
• Email team on failure
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
A Good Jenkins setup
• Do all of your work in a script
• Check script into source control
• Rejoice when a mistake is made
Rails Run Script
Run All Of Your Tests
Tests Dependent Upon Other Systems
Details: http://blog.palominolabs.com/2013/05/06/ruby-testing-and-external-dependencies/
Bonuses
• HIPAA compliance
• Performance tests over time