0
Ruby CI with Jenkins                    • cowboyd@github                    • cowboyd@twitterMonday, March 5, 2012        ...
Your Development                        Process Needs CIMonday, March 5, 2012                      2
Not for code quality*                           * this is still very importantMonday, March 5, 2012                       ...
For deploymentMonday, March 5, 2012                    4
You Need CI.                       CI is crucial to                   application distributionMonday, March 5, 2012       ...
Ruby deploys suckMonday, March 5, 2012                       6
Typical Deploy                    • check out from source control                    • bundle gems                    • ge...
Deploying from SCM                              sucksMonday, March 5, 2012                        8
Deploying from SCM                              sucks                    • If Github is getting DDOS’d should that        ...
Bundling gems at                        deploy-time sucksMonday, March 5, 2012                       10
Bundling gems at                        deploy-time sucks                    • Why should my deploy depend on             ...
Asset generation on                          deploy sucksMonday, March 5, 2012                         12
Asset generation on                          deploy sucks                    • time consuming                    • not tes...
If you’re going to                        deploy, then deploy.Monday, March 5, 2012                          14
This is what we do                    1. unpack application archive                    2. restart server processesMonday, ...
This is how we do itMonday, March 5, 2012                          16
CI should verify a fully                 assembled application,                not just its source codeMonday, March 5, 20...
Deploy a verified, fully                        assembled application.Monday, March 5, 2012                             18
Deploy the output of                              your CIMonday, March 5, 2012                          19
What we assemble                    • Source Code                    • Gem Bundle                    • Static Assets (rail...
Pass                                            Deployable                        Fail                           DiscardMo...
Winning                    • No (or very few) network dependencies                    • No (or very few) host dependencies...
Ruby deploys suck                        because they grew up                            with out CIMonday, March 5, 2012 ...
Why Jenkins?Monday, March 5, 2012                  24
Zero-Config Install                            apt-get install jenkins                            yum install jenkins      ...
Open SourceMonday, March 5, 2012                 26
Extensible                        400+ plugins to dateMonday, March 5, 2012                          27
Ruby Tools!                          Command Line                           Plugin SDKMonday, March 5, 2012               ...
Ruby CLIMonday, March 5, 2012              29
Ruby Plugins                           Live Coding!!!Monday, March 5, 2012                       30
Ruby CI with Jenkins                    • cowboyd@github                    • cowboyd@twitterMonday, March 5, 2012        ...
Upcoming SlideShare
Loading in...5
×

Ruby CI with Jenkins

5,221

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,221
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "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.

×