Coder Social home page Coder Social logo

testbot_cloud's Introduction

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 you 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.

testbot_cloud's People

Contributors

joakimk avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.