Skip to content
master
Switch branches/tags
Code
This branch is 170 commits ahead of gajdamaka:master.
Contribute
Fetch upstream

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
cmf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Continuous Integration Box

CIBox - is Ansible based system for deployment environment for web application development. With this tool you able to deploy local web-server based on Vagrant and/or remote one.

The power of the system - simplicity. All provisioning is the same for local and remote machines, except logic for installing additional software on remote (Jenkins, for example), but it quite simple too (just when: not vagrant as condition for Ansible tasks).

Currently based on Ubuntu 14.04 LTS (64bit).

  ██████╗ ██╗     ██████╗   ██████╗  ██╗  ██╗
 ██╔════╝ ██║     ██╔══██╗ ██╔═══██╗ ╚██╗██╔╝
 ██║      ██║     ██████╔╝ ██║   ██║  ╚███╔╝
 ██║      ██║     ██╔══██╗ ██║   ██║  ██╔██╗
 ╚██████╗ ██║     ██████╔╝ ╚██████╔╝ ██╔╝ ██╗
  ╚═════╝ ╚═╝     ╚═════╝   ╚═════╝  ╚═╝  ╚═╝

Main possibilities

  • Create matrix of virtual servers (droplets).
  • Automated builds for every commit in a pull request on GitHub (private repositories supported).
  • Multi CMS/CMF support. To add support of a new one, you just need to put pre-configurations to cmf/<NAME>/<MAJOR_VERSION> and ensure that core files can be downloaded via Git.
  • Opportunity to keep multiple projects on the same CI server.
  • Triggering builds via comments in pull requests.
  • Midnight server cleaning :)

Quick Start

  • Add your host credentials to the inventory file.
  • ./cibox repository --project=<NAME> [--cmf=drupal] [--version=7.41] [--host=https://github.com] [--vendor=drupal]
  • ./cibox provision --project=<NAME> [--limit=<HOST>]

Examples

Drupal 7 (standard system):

./cibox repository --project=test

WordPress 4 (supported system):

./cibox repository --project=test --cmf=wordpress --version=4.3.1

WIKI

https://github.com/propeoplemd/cibox/wiki

TIP

Don't forget to setup all http://ci_hostname:8080/configure settings with CHANGE_ME placeholders to be able meet project requirements. Also you should change all CHANGE_ME for all Jenkins jobs.

Variations

Currently provision.yml playbook powered with tags, so you can run only part of it.

./cibox provision --tags=TAGNAME
  • php-stack
  • solr
  • jenkins
  • composer
  • pear
  • drush
  • xhprof
  • sniffers
  • apache
  • mysql
  • swap
  • ssl-config

For provisioning Vagrant you also able to specify tags:

ANSIBLE_ARGS="--tags=TAGNAME" vagrant provision

As you see, any set of arguments can be passed for ansible-playbook command.

The power of cibox utility

Run with custom inventory file:

ANSIBLE_INVENTORY="/path/to/inventory" ./cibox

Run with custom set of arguments:

ANSIBLE_ARGS="-vvvv" ./cibox

By default, cibox - is a global utility which looks for a project in /var/www/. But, if you specify a playbook outside of this directory, then working folder will be the path of this playbook.

Dependencies

On your host machine you should have the following software:

Name Version
Vagrant 1.7+
Ansible 2.0+
VirtualBox 4.0+

About

Continuous Integration Toolbox

Resources

License

Releases

No releases published

Packages

No packages published