Continuous Integration

40
Continuous Integration Sunday, May 30, 2010

description

My EuRuKo 2010 presentation on Continuous Integration and why it's a good thing.

Transcript of Continuous Integration

Page 1: Continuous Integration

ContinuousIntegration

Sunday, May 30, 2010

Page 2: Continuous Integration

What?

Sunday, May 30, 2010

Page 3: Continuous Integration

1)Integrate Frequently

Sunday, May 30, 2010

Page 4: Continuous Integration

2)Fix Any Integration Problem ASAP

Sunday, May 30, 2010

Page 5: Continuous Integration

Sunday, May 30, 2010

Page 6: Continuous Integration

Instant Feedback

Sunday, May 30, 2010

Page 7: Continuous Integration

Deploy Anytime

Sunday, May 30, 2010

Page 8: Continuous Integration

Less Time Figuring Out What Went Wrong

Sunday, May 30, 2010

Page 9: Continuous Integration

Less Bugs

Sunday, May 30, 2010

Page 10: Continuous Integration

Better Estimations

Sunday, May 30, 2010

Page 11: Continuous Integration

How do you get there?

Sunday, May 30, 2010

Page 12: Continuous Integration

Just Do It

Sunday, May 30, 2010

Page 13: Continuous Integration

Automate It!

Sunday, May 30, 2010

Page 14: Continuous Integration

Just a Shellscript Will Do

Sunday, May 30, 2010

Page 15: Continuous Integration

#!/usr/bin/env ruby -wKU -rubygems

require "mail"

path = File.expand_path("../../..", __FILE__) # ./my_repoold_head, new_head, ref = ARGC.splitoutput = `cd #{path} && rake build && cap staging deploy`

exit if $?.success?

Mail.deliver do     from "[email protected]"       to "[email protected]"  subject "Built #{new_head} and failed :("     body outputend

./my_repo/.git/hooks/post-receive

Sunday, May 30, 2010

Page 16: Continuous Integration

There’s No Need To Reinvent the Wheel

Sunday, May 30, 2010

Page 17: Continuous Integration

A Few Alternatives

Sunday, May 30, 2010

Page 18: Continuous Integration

• Hudson

• CI Joe

• Integrity

Sunday, May 30, 2010

Page 19: Continuous Integration

Hudsonhttp://hudson-ci.org

Sunday, May 30, 2010

Page 20: Continuous Integration

• Built with Java

• Easy to set up

• Lots of Plugins

• Multiple SCMs officially supported

• Multiple Projects

• History of builds

Sunday, May 30, 2010

Page 21: Continuous Integration

Sunday, May 30, 2010

Page 22: Continuous Integration

It works. It's a beast, sometimes it takes a lot of config, but it works.

Sunday, May 30, 2010

Page 23: Continuous Integration

CI Joehttp://github.com/defunkt/cijoe

Sunday, May 30, 2010

Page 24: Continuous Integration

• Simple and Tiny

• Single Project

• Married to Git

• Easy to hack on

• Easy to set up

• No history

Sunday, May 30, 2010

Page 25: Continuous Integration

Sunday, May 30, 2010

Page 26: Continuous Integration

It's great. Tiny, very little config, and works like a

charm. But, limited.

Sunday, May 30, 2010

Page 27: Continuous Integration

Integrityhttp://integrityapp.com

Sunday, May 30, 2010

Page 28: Continuous Integration

• Simple and Small

• Multiple Projects

• Supports Git out of the box, other SCMs soon (if we convince the guy who works on it)

• Easy to hack on

• Easy to set up

• History of builds

Sunday, May 30, 2010

Page 29: Continuous Integration

Sunday, May 30, 2010

Page 30: Continuous Integration

It's not as full featured as Hudson, nor as limited as CI Joe.

It works great.

Sunday, May 30, 2010

Page 31: Continuous Integration

My recommendation?

Sunday, May 30, 2010

Page 32: Continuous Integration

Try Them

Sunday, May 30, 2010

Page 33: Continuous Integration

Can you live with CI Joe’s limitations?

Sunday, May 30, 2010

Page 34: Continuous Integration

If not, Integrity works

Sunday, May 30, 2010

Page 35: Continuous Integration

Questions?

Sunday, May 30, 2010

Page 36: Continuous Integration

Oh, One Last Thing

Sunday, May 30, 2010

Page 37: Continuous Integration

RubyConf UruguayOctober 22nd-23rd (tentatively)

Sunday, May 30, 2010

Page 38: Continuous Integration

RubyConf Uruguayget updates on @rubyconfuruguay

Sunday, May 30, 2010

Page 39: Continuous Integration

Dziękuję!(Thank you!)

http://github.com/focahttp://twitter.com/godfoca

Sunday, May 30, 2010

Page 40: Continuous Integration

Credits

http://www.flickr.com/photos/bfhoyt/413450378http://www.flickr.com/photos/bitzcelt/2561992266

http://www.flickr.com/photos/rahel_jaskow/3974688430http://www.flickr.com/photos/unavoidablegrain/4622043091

http://www.flickr.com/photos/gratzer/1414922403http://www.flickr.com/photos/indieink/332473019

http://commons.wikimedia.org/wiki/File:Hudson_Screenshot.png

Sunday, May 30, 2010