A collection of tools for developing and testing CiviCRM.
Shell PHP Ruby Elixir

README.md

civicrm-buildkit

Buildkit is a collection of ~20 tools for developing and testing CiviCRM. These tools are referenced in the CiviCRM developer documentation.

Many of these tools are commonly used by web developers, so you may have already installed a few. Even so, it's generally easier to download the full collection -- installing each individually takes a lot of work.

This is the same collection of tools which manages the test/demo/release infrastructure for civicrm.org.

Download

  • Full Download: Ubuntu - Download buildkit and all system dependencies (mysql, etc). This is ideal when setting up a new, clean Ubuntu host.
  • Full Download: Vagrantbox - Download a prepared virtual-machine with all system dependencies (mysql, etc). This is ideal if you work on Windows or OS X.
  • Manual Download - Just download buildkit. This is ideal if you have already installed the system dependencies by some other means (CentOS, MAMP, etc).

After you've downloaded buildkit the first time, you should periodically update the tools.

Configuration and Usage

  1. PATH: Configure CLI support
  2. Civibuild: Create a full dev/demo build
  3. Daily Coding: First Pull-Request, Housekeeping, etc
  4. Experimental: Multiple demo/training sites

CLI Tools

  • CiviCRM
    • civix - Generate skeletal code for CiviCRM extensions.
    • civistrings - Scan code for translatable strings (*.pot).
    • cividist - Generate tarballs from a series of git branches/tags
    • cv - Execute custom PHP in Civi
  • Dependency management
    • composer - Manage dependencies for PHP code.
    • bower - Manage dependencies for Javascript code.
  • Source code management
    • git-scan - Manage a large number of git repositories.
    • gitify - Convert a CiviCRM installation to a git repo.
    • hub - Send commands to github.com.
  • Source code quality
  • Site management
    • amp - Abstracted interface for local httpd/sql service (Apache/nginx/MySQL).
    • civibuild - Build a complete source tree (with CMS+Civi+addons), provision httpd/sql, etc.
    • civihydra - Create a series test sites for several CMSs. (Extends civibuild.)
    • drush - Administer a Drupal site.
    • joomla (joomla-console) - Administer a Joomla site.
    • wp (wp-cli) - Administer a WordPress site.
  • Testing