Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Ruby CI with Jenkins


                    • cowboyd@github
                    • cowboyd@twitter


Monday, March 5, 2012 ...
Your Development
                        Process Needs CI


Monday, March 5, 2012                      2
Not for code quality*


                           * this is still very important
Monday, March 5, 2012                   ...
For deployment



Monday, March 5, 2012                    4
You Need CI.
                       CI is crucial to
                   application distribution


Monday, March 5, 2012  ...
Ruby deploys suck



Monday, March 5, 2012                       6
Typical Deploy

                    • check out from source control
                    • bundle gems
                    ...
Deploying from SCM
                              sucks


Monday, March 5, 2012                        8
Deploying from SCM
                              sucks

                    • If Github is getting DDOS’d should that
    ...
Bundling gems at
                        deploy-time sucks


Monday, March 5, 2012                       10
Bundling gems at
                        deploy-time sucks

                    • Why should my deploy depend on
         ...
Asset generation on
                          deploy sucks


Monday, March 5, 2012                         12
Asset generation on
                          deploy sucks

                    • time consuming
                    • not...
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 processes



...
This is how we do it




Monday, March 5, 2012                          16
CI should verify a fully
                 assembled application,
                not just its source code


Monday, March ...
Deploy a verified, fully
                        assembled application.


Monday, March 5, 2012                            ...
Deploy the output of
                              your CI


Monday, March 5, 2012                          19
What we assemble

                    • Source Code
                    • Gem Bundle
                    • Static Assets (...
Pass


                                            Deployable
                        Fail




                           ...
Winning

                    • No (or very few) network dependencies
                    • No (or very few) host dependenc...
Ruby deploys suck
                        because they grew up
                            with out CI


Monday, March 5, ...
Why Jenkins?



Monday, March 5, 2012                  24
Zero-Config Install
                            apt-get install jenkins
                            yum install jenkins
   ...
Open Source



Monday, March 5, 2012                 26
Extensible
                        400+ plugins to date




Monday, March 5, 2012                          27
Ruby Tools!
                          Command Line
                           Plugin SDK




Monday, March 5, 2012        ...
Ruby CLI




Monday, March 5, 2012              29
Ruby Plugins
                           Live Coding!!!




Monday, March 5, 2012                       30
Ruby CI with Jenkins


                    • cowboyd@github
                    • cowboyd@twitter


Monday, March 5, 2012 ...
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
Next
Download to read offline and view in fullscreen.

11

Share

Ruby CI with Jenkins

Download to read offline

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.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Ruby CI with Jenkins

  1. 1. Ruby CI with Jenkins • cowboyd@github • cowboyd@twitter Monday, March 5, 2012 1
  2. 2. Your Development Process Needs CI Monday, March 5, 2012 2
  3. 3. Not for code quality* * this is still very important Monday, March 5, 2012 3
  4. 4. For deployment Monday, March 5, 2012 4
  5. 5. You Need CI. CI is crucial to application distribution Monday, March 5, 2012 5
  6. 6. Ruby deploys suck Monday, 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 sucks Monday, 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 branch Monday, March 5, 2012 9
  10. 10. Bundling gems at deploy-time sucks Monday, 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 sucks Monday, March 5, 2012 12
  13. 13. Asset generation on deploy sucks • time consuming • not tested anywhere else until go-time Monday, 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 processes Monday, March 5, 2012 15
  16. 16. This is how we do it Monday, March 5, 2012 16
  17. 17. CI should verify a fully assembled application, not just its source code Monday, March 5, 2012 17
  18. 18. Deploy a verified, fully assembled application. Monday, March 5, 2012 18
  19. 19. Deploy the output of your CI Monday, March 5, 2012 19
  20. 20. What we assemble • Source Code • Gem Bundle • Static Assets (rails 3.1/Sprockets) • Passenger • Ruby Monday, March 5, 2012 20
  21. 21. Pass Deployable Fail Discard Monday, March 5, 2012 21
  22. 22. Winning • No (or very few) network dependencies • No (or very few) host dependencies • Fast! • Idempotent deploys Monday, March 5, 2012 22
  23. 23. Ruby deploys suck because they grew up with out CI Monday, 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 friends Monday, March 5, 2012 25
  26. 26. Open Source Monday, March 5, 2012 26
  27. 27. Extensible 400+ plugins to date Monday, March 5, 2012 27
  28. 28. Ruby Tools! Command Line Plugin SDK Monday, March 5, 2012 28
  29. 29. Ruby CLI Monday, March 5, 2012 29
  30. 30. Ruby Plugins Live Coding!!! Monday, March 5, 2012 30
  31. 31. Ruby CI with Jenkins • cowboyd@github • cowboyd@twitter Monday, March 5, 2012 31
  • DwiFahniDenni

    Nov. 20, 2017
  • KalpanaPatil3

    Nov. 7, 2017
  • DustinArmstrong4

    Mar. 17, 2017
  • jungyoujin2

    Dec. 14, 2016
  • mcatetellani

    Sep. 7, 2016
  • reyesyang

    Jun. 3, 2016
  • jeffgonzalez

    Jan. 6, 2014
  • francoisledroff

    May. 17, 2013
  • powerirs

    Apr. 20, 2013
  • garuhenr

    Dec. 12, 2012
  • abevoelker

    Oct. 3, 2012

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.

Views

Total views

61,374

On Slideshare

0

From embeds

0

Number of embeds

53,646

Actions

Downloads

38

Shares

0

Comments

0

Likes

11

×