Ruby CI with Jenkins

  • 4,898 views
Uploaded 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 …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,898
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
17
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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