Ruby CI with Jenkins

5,871
-1

Published on

In this short talk, Ishow some great ways you can use Jenkins to supercharge both the development AND deployment of your Ruby projects. Finally, I will demonstrate how you can extend the Jenkins CI server (which is written in Java) with nothing Ruby code.

If you aren't getting the most out of your CI tools, or you aren't using a CI tool at all, then this is for you! Implementing a proper CI is a game changer to the way you and your team develop software.

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,871
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
19
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Ruby CI with Jenkins

  1. 1. Ruby CI with Jenkins • cowboyd@github • cowboyd@twitterMonday, March 5, 2012 1
  2. 2. Your Development Process Needs CIMonday, March 5, 2012 2
  3. 3. Not for code quality* * this is still very importantMonday, March 5, 2012 3
  4. 4. For deploymentMonday, March 5, 2012 4
  5. 5. You Need CI. CI is crucial to application distributionMonday, March 5, 2012 5
  6. 6. Ruby deploys suckMonday, March 5, 2012 6
  7. 7. Typical Deploy • check out from source control • bundle gems • generate assets (rails/sprockets) • and then more stuff...Monday, March 5, 2012 7
  8. 8. Deploying from SCM sucksMonday, March 5, 2012 8
  9. 9. Deploying from SCM sucks • If Github is getting DDOS’d should that mean you can’t deploy? • Branches and tags can be moving targets • server affinity for a particular branchMonday, March 5, 2012 9
  10. 10. Bundling gems at deploy-time sucksMonday, March 5, 2012 10
  11. 11. Bundling gems at deploy-time sucks • Why should my deploy depend on rubygems.org? • My app is about to go live. Is now really the best time to be compiling C extensions?Monday, March 5, 2012 11
  12. 12. Asset generation on deploy sucksMonday, March 5, 2012 12
  13. 13. Asset generation on deploy sucks • time consuming • not tested anywhere else until go-timeMonday, March 5, 2012 13
  14. 14. If you’re going to deploy, then deploy.Monday, March 5, 2012 14
  15. 15. This is what we do 1. unpack application archive 2. restart server processesMonday, March 5, 2012 15
  16. 16. This is how we do itMonday, March 5, 2012 16
  17. 17. CI should verify a fully assembled application, not just its source codeMonday, March 5, 2012 17
  18. 18. Deploy a verified, fully assembled application.Monday, March 5, 2012 18
  19. 19. Deploy the output of your CIMonday, March 5, 2012 19
  20. 20. What we assemble • Source Code • Gem Bundle • Static Assets (rails 3.1/Sprockets) • Passenger • RubyMonday, March 5, 2012 20
  21. 21. Pass Deployable Fail DiscardMonday, March 5, 2012 21
  22. 22. Winning • No (or very few) network dependencies • No (or very few) host dependencies • Fast! • Idempotent deploysMonday, March 5, 2012 22
  23. 23. Ruby deploys suck because they grew up with out CIMonday, March 5, 2012 23
  24. 24. Why Jenkins?Monday, March 5, 2012 24
  25. 25. Zero-Config Install apt-get install jenkins yum install jenkins chef, puppet and friendsMonday, March 5, 2012 25
  26. 26. Open SourceMonday, March 5, 2012 26
  27. 27. Extensible 400+ plugins to dateMonday, March 5, 2012 27
  28. 28. Ruby Tools! Command Line Plugin SDKMonday, March 5, 2012 28
  29. 29. Ruby CLIMonday, March 5, 2012 29
  30. 30. Ruby Plugins Live Coding!!!Monday, March 5, 2012 30
  31. 31. Ruby CI with Jenkins • cowboyd@github • cowboyd@twitterMonday, March 5, 2012 31
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×