Successfully reported this slideshow.
Your SlideShare is downloading. ×

Drupal's Development workflow with Git, Jenkins, Aegir and Chiliproject

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 17 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to Drupal's Development workflow with Git, Jenkins, Aegir and Chiliproject (20)

Advertisement

Recently uploaded (20)

Drupal's Development workflow with Git, Jenkins, Aegir and Chiliproject

  1. 1. Development workflow with Drupal featuring Git, Ægir, Jenkins & Chiliproject. © 2012 Pol Dell'Aiera (http://about. me/drupol), Pierre Buyle (http://about. me/pbuyle)
  2. 2. What is Git ? Git is a distributed revision control system (VSC or SCM). Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.
  3. 3. Why Git is better ? Pros Cons ● Everything is local ● :-) ● Easy branching ● Fast and small ● Distributed ● Staging area ● Any workflow is possible ● Easy to learn ● Free ● Open Source Source: http://whygitisbetterthanx.com/
  4. 4. What is Jenkins ? Jenkins, formerly known as "Hudson Labs", is the leading open-source continuous integration server.  Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, Jenkins focuses on the following two jobs: 1. Building/testing software projects continuously 2. Monitoring executions of externally-run jobs Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.
  5. 5. What is Ægir ? The Ægir hosting system allows developers and site administrators to automate many of the common tasks associated with deploying and managing large websites. Ægir makes it easy to install, upgrade, deploy, and backup an entire network of Drupal sites. Support for multi-server site deployment and management allows for migrating sites between servers, including large sites spread across multiple web servers.
  6. 6. What is Chiliproject ? ChiliProject is a web based project management system written in Ruby.  It supports your team throughout the complete project life cycle, from setting up and discussing a project plan, over tracking issues and reporting work progress to collaboratively sharing knowledge through a wiki.
  7. 7. How To Link Them All Together ?
  8. 8. The big picture
  9. 9. Details: Users & Git Users communicate with Git. You can use Git in command line or your favorite IDE.
  10. 10. Details: Git &Jenkins In this setup, Git is polled by Jenkins. It's Jenkins who check at regular interval the state of the repositories. According to the job configuration, Jenkins can be triggered upon a change in a repository or at regular interval.
  11. 11. Details: Jenkins Repositories are linked to one or more Jenkins jobs. When a job is runned, it can be either Success or Failed. Jobs starts Phing, a PHP builder tool who will ● Populate the Drupal tree with code from Drupal.org and your repositories ● Runs checks and tests to validate the code ● Deploy the validated code using Fabric, a python library.
  12. 12. Details: Jenkins: Phing Jenkins exhaustively use a tool called Phing, a PHP project build system. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. The whole Drupal project is built thanks to this tools called within and by Jenkins.
  13. 13. Details: Jenkins: Phing: Fabric Fabric is a python library and command-line tool for streamlining the use of SSH for application deployement. It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.
  14. 14. Details: Jenkins If the job failed to build, Jenkins will not continue and you'll be able to review the log and fix the problem.  Jenkins will check code from the repository with multiple tools (PHP_CodeSniffer, JSLInt, etc.). It will also produce code statistics and review. Errors are often triggered by a syntax errors in the code. If the build is successful, Jenkins will run a python script and specific command to import the site into Ægir.
  15. 15. Details: Ægir Ægir will import Drupal websites into it's database and create Apache virtualhosts automatically. With Ægir, you can manage sites, platforms and servers through the command line and/or the web interface. This is the perfect tool to deploy Drupal.
  16. 16. Details: Apache Apache will be reloaded by Ægir and the new virtualhost newly created will be taken in account. You'll be able to log-in to the new site for the first time and set the administrator password.
  17. 17. References / More information ● Git ○ http://git-scm.com ○ https://drupal.org/documentation/git ● Continuous Integration ○ http://www.martinfowler.com/articles/continuousIntegration.html ○ https://en.wikipedia.org/wiki/Continuous_Integration ● Jenkins ○ http://jenkins-ci.org ○ http://reload.github.com/jenkins-drupal-template ● Phing ○ http://www.phing.info ○ http://reload.github.com/phing-drupal-template/ ● Fabric ○  http://fabfile.org ● Ægir ○ http://www.aegirproject.org ○ http://mig5.net/content/aegir-video-drupaldownunder-2012 ● Chiliproject ○ https://www.chiliproject.org/ 

×