◦ Way to test code / functionality changes as they are introduced to your software. ◦ Send out test results on pass/fail/other criteria. • Gradually evolved into software to also help manage deployment. • Tons of plugins ◦ CVS/SVN/Git/Mercurial/Bazaar/etc. ◦ Selenium, Phing ◦ Notifications
a separate server for it. • Setup heavy ◦ Setup server, ssh keys, etc. • Code heavy ◦ Code your deployment steps. • Need to learn another language ◦ Shell scripting ◦ Python (Fabric) ▪ Drush (aegir, drush_deploy) ◦ Ruby (capistrano, whiskey_disk) • Use other deployment tool ◦ Chef/Puppet (Ruby? create deb/rpm packages?)
into the server(s). ◦ No need to remember steps. • Run tests easily ◦ Get emails / web reports of results. ◦ Sent out to entire team. ▪ https://github.com/codedance/Retaliation • Create production builds easily. ◦ See points above. ◦ Also allow for other team members to deploy changes without actually requiring server credentials. • Easily create the builds. ◦ Push of a button. ◦ Cron task. ◦ Only on code changes (automated). Why Jenkins
websites. ◦ Own set of servers (on hand, vps, dedicated, etc) • Even if you're on Pantheon/Acquia, useful since you can test out your code locally before deployment. • Great tool regardless of actual application. ◦ Drupal, Wordpress, Django...doesn't matter. • Not scared of some code.
org/project/barracuda) ▪ Aegir ▪ Nginx ▪ Various other things that I don't have to worry about. ▪ ssh key to checkout git repo. ◦ Jenkins / Fabric on build server. ▪ Nginx for reverse-proxy and password auth. • Only allow 'anonymous' user access to notify on git poll. ▪ Small instance (256 megs) ▪ ssh key to automatically log into testing/production.