Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A tool for creating and managing testbot clusters in the cloud.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 autotest
Octocat-spinner-32 bin
Octocat-spinner-32 features
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .autotest
Octocat-spinner-32 .gemtest
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .rvmrc
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 Gemfile
Octocat-spinner-32 LICENCE
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 testbot_cloud.gemspec
README.markdown

Build status

A tool for creating and managing testbot clusters in the cloud.

TestbotCloud is based around the idea that you have a project folder for each cluster (which you can store in version control). You then use the "testbot_cloud" command to start and stop the cluster.

The motivation behind this tool, besides making distributed testing simpler is to be able to run a cluster only when it's needed (by scheduling it with tools like cron).

Installing

gem install testbot_cloud

Getting started

Using AWS EC2:

  • Get a AWS account at http://aws.amazon.com/.
  • Create a Key Pair.
  • Allow SSH login to a security group. For example: SSH, tcp, 22, 22, 0.0.0.0/0.

Using Brightbox:

Creating a cluster

Create a project

testbot_cloud new demo

# create  demo/config.yml
# create  demo/.gitignore
# create  demo/bootstrap/runner.sh

Start

cd demo
testbot_cloud start

# Starting 1 runners...
# i-dd2222dd is being created...
# i-dd2222dd is up, installing testbot...
# i-dd2222dd ready.

Shutdown

testbot_cloud stop

# Shutting down i-dd2222dd...

Debugging

  • Run DEBUG=true testbot_cloud start to show all SSH commands and output.

Gotchas

  • Don't create more than 10-15 or so runners at a time (some cloud providers don't allow more than that many connections at once). This might be fixed by batching the creation process in a later version of TestbotCloud.

  • Don't create more than 20 runners in total on EC2 as it has a limit by default. See the EC2 FAQ for more info.

Features

  • TestbotCloud is continuously tested for compatibility with Ruby 1.8.7, 1.9.2, 1.9.3, JRuby 1.6.2 and Rubinius 1.2.3. I'm also trying out travis-ci at http://travis-ci.org/#!/joakimk/testbot_cloud.
  • TestbotCloud is designed to be as reliable as possible when starting and stopping so that you can schedule it with tools like cron and save money.

How to add support for additional cloud computing providers

Basics:

  • Look at lib/server/aws.rb and lib/server/brightbox.rb.
  • Write your own and add it to lib/server/factory.rb.
  • Add fog config suitable for the provider to your config.yml.

When contributing:

  • Make sure you have the tests running on your machine (should be just running "bundle" and "rake").
  • Write tests.
  • Add a config example to the template at lib/templates/config.yml.
  • Update this readme.
Something went wrong with that request. Please try again.