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..
1. Requirements 2. Installation procedure
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.
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 <rails_project>/config/borg.yml as per above server IP and push the code (server IP is : 172.18.0.7)
For instance
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
Step 5 : Go to project folder and start the Borg server (i.e Server machine) as follows
rake borg:start_server # Start server
Step 6 : Choose a Client machine and checkout project folder and run the Client
rake borg:start_client
You can also run the client on the same server
Step 7: Run the task rake borg:build and we can also add this task to cruise config. So it will run for every new push.
That’s it!.
* 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.