Buildbot and EC2
Contents
Project Name
Buildbot and EC2
Project Description
The BuildBot is software for automatically building and testing other software. EC2 is Amazon's "Elastic Compute Cloud", a service that lets you run Virtual Machines on Amazon's computing grid using a web API. It would be awesome if BuildBot had an EC2 module, and could spawn Virtual Machines on-demand to perform tasks. Conveniently, BuildBot is written in Python, and there's a Python library for interfacing with EC2.
References: Amazon EC2 Basics For Python Programmers
Project Leader(s)
Project Contributor(s)
Project Details
Release 0.1
Goals:
- Add in a new build step to Buildbot
- Allow Buildbot to connect with Amazon's EC2 service
Basically, the first thing that needs to be done is add a new step to Buildbot's build process. Once a new step has been added, the next step is to make this new build step access my EC2 account.
After I can actually access my EC2 account through Buildbot, then a possible next step would be to make Buildbot check to see if I have any open Virtual Instances running already (no point in starting another instance if ones running already).
One thing that may need to be kept in mind is that Amazon charges 10 cents per hour, or part of an hour, per instance. So, each time you start a new instance, it costs 10 cents. The best way I can think of doing this is make each instance you start, last for at least an hour, so that if you start another build in 10 mins, you can continue to use the same instance instead of starting a new one.
For this, Buildbot would need to run a service on the OS to constantly check to see if an instance is approaching the 1 hour mark, and not running any build slaves. Not quite sure how I'd do that, but it's something to keep in mind.
Release 0.2
Release 0.3
Tasks
Task | Details | Priority | Contributors | Status | Link(s) |
---|---|---|---|---|---|
Define new build step | Add a new build step to the build master config file. The build step will be in an external file and imported into the build master config file. | High | Adam Delyea | In Progress, On Track | Writing New Build Steps |
Connect To EC2 using Python | Utilize the EC2 python library to connect to an account on the EC2 network. Once connected, display some information about the users account to prove it's actually connecting. | High | Adam Delyea | In Progress, On Track |
Project Resources
- Mozilla Buildbot links: docs and code
- EC2 Firefox Extension
- Amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java
Project News
2007-09-17: Project claimed!
2007-10-11: Found a python EC2 library that has all of the functions I will need for interacting with EC2. Just need to write a custom build step to run these library functions.