Borg is a distributed test runner for running you unit/functionals tests, specs or cucumber scenarios, across a network of machines.
It is written using EventMachine and Redis and has rather very simple design at its heart. More details forthcoming..
CONTENTS 1. Requirements 2. Installation procedure
1. We need Redis for this setup.
Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
2. Installation procedure
Step 1 : Choose a machine where you want to run the borg server(for instance a Server with IP 172.18.0.7 in mycase).
Step 2 : We need a Redis server for this setup. So, install redis server and run the redis server on same machine( i.e same Server with IP 172.18.0.7).
Please refer http://redis.io/ to install the redis
Step 3 : checkout your project with borg gem
Step 4 : Add a configuration file solaro/config/config.yml as per above server IP and push the code (server IP is : 172.18.0.7)
redis_ip: "172.18.0.7" redis_port: 6379 build_server_ip: "172.18.0.7" build_server_port: 10001 build_test_unit_processes: 3 build_cucumber_processes: 1 test_framework: "rake spec/ rake test"
Step 5 : Add a a borg_config.rb in initializers.
Borg::Config.ip = configatron.build_server_ip Borg::Config.port = configatron.build_server_port Borg::Config.redis_ip = configatron.redis_ip Borg::Config.redis_port = configatron.redis_port Borg::Config.test_unit_processes = configatron.build_test_unit_processes Borg::Config.cucumber_processes = configatron.build_cucumber_processes Borg::Config.test_framework = configatron.test_framework
Step4 : Go to project folder and start the Borg server (i.e Server machine) as follows
rake borg:start_server # Start server
Step5 : Choose a Client machine and checkout project folder and run the Client
rake borg:start_client 2>&1 &
You can also run the client on the same server
Step6: Run the task rake borg:build and we can also add this task to cruise config. So it will run for every new push.
Contributing to Borg
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it * Fork the project * Start a feature/bugfix branch * Commit and push until you are happy with your contribution * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally. * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
Copyright (c) 2011 Hemant Kumar & Karunakar. See LICENSE.txt for further details.