Project

cide

0.02
No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
cide is a command-line tool that runs tests in an isolated (docker) environment. It allows to run the same command on the developer and CI machines.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 0.19
~> 1.0
 Project Readme

cide - Isolated build tool and test runner with Docker

cide is a command-line tool that builds packages and runs tests in an isolated (docker) environment. It solves a problem where Jenkins workers need all the project's dependencies (possibly conflicting) to be installed on the boxes. With cide each run gets its own set of temporary docker containers which are scratched at the end. Incidentally it is also possible to run the same cide command on the developer machine and get the same build environment as on the CI. This makes configuration iterations much shorter and allows to converge on a working configuration faster.

Usage

Go to the target project's root and run cide init to populate a default cide.yml. This file contains all the instruction to build your project with cide.

Once the file is configured run cide to execute the build. All the output will appear in the console.

Example

cide.yml

---
from: "ruby:2.1"
as_root:
- apt-get update -qy && apt-get install -qy libxml2-dev
before:
  add:
  - Gemfile
  - Gemfile.lock
  run: bundle install --jobs=3 --retry=3 --deployment
run: bundle exec rspec

See the cide.yml man page for the full documentation.

Features

  • straighforward to use, just run cide inside of your project
  • works on OSX with boot2docker
  • integrates easily with jenkins or other CI systems
  • can use linked containers for backend dependencies like MySQL or redis
  • artefact export

Missing features

  • Linked container readiness detection. Some containers take a while to boot up. Currently the script/ci must implement some sort of detection loop.
  • Language detection: default settings per language (see Travis-CI). The current format might be a bit daunting for non-experts.
  • Build matrix: run variations of the tests, for example with different versions of ruby to make sure all are supported (useful for libraries).
  • Support for local docker machine

PR welcome !

Installation

The current dependencies are ruby 2.0+ and docker 1.5.0+

On OSX, boot2docker is automatically used if installed.

Quick OSX docker install:

brew install boot2docker
boot2docker init
boot2docker up

Then install the cide ruby gem:

gem install cide

Similar projects

TODO

  • Explain how to use cide with Jenkins
  • Explain Travis CI vs cide + Jenkins