drupal ignite

Drupal Continuous Integration Kickstarter

19
8
PHP

Drupal Ignite

This project contains a Drupal 7 template project that can be used to quickly set up a new environment.

NOTICE

This software is in early development stage and could still change a lot, so don’t get mad if it still has a few raw edges 😃

Installation

  • run the setup.sh script and provide an installation folder (eg: /var/www/acme/website), a domain and a site name (eg: AcmeSite);
  • go to the installation folder (eg: cd /var/www/acme/website)
  • review and fix the parameters in the build.loc.properties, build.dev.properties and build.stage.properties files;
  • start your database (MySQL, for instance);
  • let phing build the local environment by typing bin/phing loc-app -verbose.

Contents

root folder

  • a tailored .gitignore file;
  • a simple apache vhost conf file;
  • a drush make file containing some basic modules and libraries;
  • a behat.yml.dist file, containing a Drupal-optimized set of Behat configuration;
  • some phing.properties files, containing the variables belonging to each environment;
  • a phing build.xml file, containing some targets to build the site in the local, dev and stage environments;
  • a composer.json file, containing all the dependencies needed by behat and phing;
  • a phpunit.xml.dist, containing the default config for running phpunit tests.

bin/ folder

  • a small bash build file that downloads composer and phings and runs the build.

dumps/ folder

  • placeholder to make sure the directories is here. it will hold drush backups.

features/ folder

  • a bootstrap/Drupal/Ignite/ folder containing two Behat Contexts carrying some goodies;
  • a files/ folder containing two images to use as fixtures.
  • an example scenario.

profiles/ folder

  • it contains a very basic Drupal install profile.

reports/ folder

  • placeholder to make sure the directories is here. it will hold test results and code analysis reports.

a sites folder

  • a drush folder containing alias configuration;
  • a modules folder containing basic subfolders layout for future modules and features;
  • an empty themes folder.

a test folder

  • a phpunit bootstrap file;
  • a csv file iterator;
  • a migrate helper to load csv data sources.

Requirements

  • A Bash-compatible shell
  • PHP 5.3.3+
  • PHP extensions: json, curl

Roadmap

  • make the script able to handle site names containing any character
  • improve the setup provisioning script to handle a full installation
  • add ansible provisioning as a main option instead of the shell script
  • update and add more dependencies, both on composer and drush make
  • remove italian as default language for the install profile
  • add debug and prod environment
  • add support for javascript testing frameworks
  • add support for copying vhost file into apache config directory
  • add platform/configuration detection to better target copies
  • updating hosts file automatically
  • improve input handling in setup.sh
  • setting up mysql database
  • add apache vhost templates for all environments
  • add nginx vhost templates