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
- Create directory for your tests
- 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=
- Add to cron to check every hour (optional):
crontab -e
00 * * * * garlic PATH_TO_CONFIG --check-and-run
- Run the webserver:
garlic PATH_TO_CONFIG_INI