Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DCLA 2013: Managing developer workflows with Jenkins

btmash
July 14, 2013

DCLA 2013: Managing developer workflows with Jenkins

btmash

July 14, 2013
Tweet

More Decks by btmash

Other Decks in Technology

Transcript

  1. DrupalCampLA 2013 Simple DevOps Using Jenkins Agenda About the presenter

    About Jenkins Why *NOT* Jenkins Why Jenkins Fabric Demo Capistrano Demo Resources • • • • • • • • •
  2. DrupalCampLA 2013 Simple DevOps Using Jenkins About the Presenter Ashok

    Modi BTMash (http://drupal.org/user/60422) Cherry Hill Company Contributed modules since 2006. Contributed to core since 2010. Upgrade path maintainer: 2012 - 2013. • • • • • •
  3. DrupalCampLA 2013 Simple DevOps Using Jenkins What is Jenkins? Continuous

    Integration Software Way to test code / functionality changes introduced to software. Send test results upon pass/fail. Gradually evolved into software to also help manage deployments. Front-end to manage your application. Many plugins CVS/Git/Mercurial Selenium/Phing • • • • • • • •
  4. DrupalCampLA 2013 Simple DevOps Using Jenkins Why Not Jenkins? Already

    using a 3rd party deployment solution Pantheon / Acquia (both of which work very well). Already using chef/puppet for deployment (creating your own rpm/deb files? how?) Doesn’t ‘just’ involve drupal. Python (Fabric), Capistrano (Ruby), something else? “Jenkins Sucks” Resource heavy Setup heavy Code heavy • • • • • • • • •
  5. DrupalCampLA 2013 Simple DevOps Using Jenkins Why Jenkins? Create test

    builds. Run tests easily. Create production builds easily. Easily create builds. Automated. Cron tasks. Manually (‘Push the button!’) • • • • • • •
  6. DrupalCampLA 2013 Simple DevOps Using Jenkins Who is it for?

    If you host your own websites. Have own servers (dedicated, vps, cloud, etc...not Pantheon/Acquia). Something *not* Drupal (Rails has heroku?). Not scared of code. Tired of emails/IMs asking to update code. • • • • •
  7. DrupalCampLA 2013 Simple DevOps Using Jenkins Fabric What is Fabric?

    Command-line tool to execute tasks on local/remote servers. Upload/download files. Requires python. How might Fabric and Drupal fit together? Simple commands (update codebase from repo or makefile). Run drush tasks (like make, cron, updb, etc). Part of larger deployment with Ægir. • • • • • • • •
  8. DrupalCampLA 2013 Simple DevOps Using Jenkins Fabric: Demo Server with

    preconfigured fabric script Step through some of the files. See how it looks in Jenkins. Run it. View it at http://goo.gl/ARnJp • • • • •
  9. DrupalCampLA 2013 Simple DevOps Using Jenkins Capistrano What is Capistrano?

    Similar to Fabric, remote ssh various tasks. Primarily used for application (rails) deployment. Plugins for various projects now! Takes care of application cycle. Code revisions. • • • • • •
  10. DrupalCampLA 2013 Simple DevOps Using Jenkins Capistrano Core tasks Deploy

    new release. Rollback current release to previous release. Create additional tasks. Integrate with drush? Integrate sql dumps as part of snapshot for rollbacks? • • • • • •
  11. DrupalCampLA 2013 Simple DevOps Using Jenkins Capistrano: Demo Server with

    preconfigured Capistrano Tasks Step through code / environment. View more at http://goo.gl/echjW See how it looks in Jenkins. Run it. • • • • •
  12. DrupalCampLA 2013 Simple DevOps Using Jenkins Additional Resources Fabric http://docs.fabfile.org

    Capistrano https://github.com/capistrano/capistrano Mig5 (http://mig5.net) http://goo.gl/yiveJ (article) https://github.com/mig5/aegir_cid (aegir) • • • • • • •
  13. DrupalCampLA 2013 Simple DevOps Using Jenkins Additional Resources (cont’d) http://reload.github.com/jenkins-drupal-

    template (simpletests, phing) http://sachachua.com/blog/p/22290 (Testing) http://goo.gl/QwtHM (additional slides) http://drupalize.me/blog/201211/our-approach- data-migration-upgrade (test content migration) • • • •