/garlic

A minimal testing server, jenkins -like, but very light

Primary LanguageC++

Garlic

This is a Jenkins-like minimal testing server.

It has a very simple configuration for setting up full testing.

As it is in a very infant state, and the goals are quite restricted, if you need something more complex, go for Jenkins (http://jenkins-ci.org/). I use it myself for more complex projects.

Features:

  • Very minimal configuration, depends on just one small config file and your own shell based rules and tests. Up in 2 min.
  • Very minimal memory consumption. Just now about 2MB Res memory.
  • Very fast. It's C++.
  • Cron-runnable check for test.
  • Allow multiple tests.
  • Change enviroinmental variables on interface for bevavioral runtime changes of your tests.

Vs Jenkins:

  • No need for extra servers, no tomcat, no apache/nginx.
  • 2MB vs 150MB (using Jetty).
  • Really easy to understand. Just 750 lines of code.
  • C++, not Java.
  • Just one user account.

Quick Start

Requirements

  • Onion:
git clone https://github.com/davidmoreno/onion.git
cd onion

mkdir build
cd build

cmake ..
make

sudo make install
  • Boost

Compile

git clone https://github.com/davidmoreno/garlic.git
cd garlic

mkdir build
cd build

cmake ..
make

sudo make install

Setup

  1. Create directory for your tests
  2. Create a config.ini file with contents similar to this, but tailored to your needs:
[global]
# free entry if no password
username=coralbits
password=coralbits

name=Example test: random, sometimes ok, sometimes fail.

#cwd= # where to chdir, defaults to test dir.

[scripts]
# command to run when an error happens. As stdin it receives the output of the test.
on_error=mail -s "Garlic error" "dmoreno@coralbits.com"
# command to run when after an error we get a success. As stdin it receives the output of the test.
on_back_to_normal=mail -s "Garlic back to normal" "dmoreno@coralbits.com"

# check to run for --check_and_run command line parameter.
#check=git fetch && [ $(git diff origin/master | wc -l) = 0 ]
check=false
# test to run
test=./test.sh # must include update/pull if necessary
# name of the test
test_name=Generic test

# if more than one, add _1, _2... to test and test_name.
test_1=git pull
test_name_1=Pull

[env]
# environmental variables added before running tests and on_error/on_back_to_normal
FROM=dmoreno@coralbits.com
TO=dmoreno@coralbits.com

[env-rw]
# env-rw are environmental variables modifiable at the gui when running the tests.

# with default option
PARAM1=Default value
# No default option
PARAM2=
  1. Add to cron to check every hour (optional):
crontab -e

	00 * * * * garlic PATH_TO_CONFIG --check-and-run
  1. Run the webserver:
garlic PATH_TO_CONFIG_INI

githalytics.com alpha