Difference between revisions of "Buildbot and EC2/0.2"
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
= Release 0.2 = | = Release 0.2 = | ||
− | + | [[Buildbot_and_EC2| Buildbot and EC2 Project Page]] | |
== Goals == | == Goals == | ||
Line 40: | Line 40: | ||
The EC2BuildSlave.py goes into your python's framework folder for Buildbot (note: on my mac, this is<br/> /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/buildbot/) | The EC2BuildSlave.py goes into your python's framework folder for Buildbot (note: on my mac, this is<br/> /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/buildbot/) | ||
− | ---- | + | == Tasks == |
+ | <table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0> | ||
+ | <th style="width: 17%;">Task</th> | ||
+ | <th style="width: 35%>Details</th> | ||
+ | <th style="width: 5%;">Priority</th> | ||
+ | <th style="width: 10%;">Contributors</th> | ||
+ | <th style="width: 15%;">Status</th> | ||
+ | <th style="width: 4%;">Target</th> | ||
+ | <th style="width: 4%;">Completed</th> | ||
+ | <th style="width: 10%;">Link(s)</th> | ||
+ | |||
+ | <tr> | ||
+ | <td>Start new instances</td> | ||
+ | <td>Allow Buildbot to spawn an instance on demand. This could possibly be a function called right before the build slave list is populated, and would pass back an array of build slaves.</td> | ||
+ | <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td> | ||
+ | <td>[[User:Awdelyea|Adam Delyea]]</td> | ||
+ | <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td><del>Add new instances to build slave list</del></td> | ||
+ | <td>Allow newly created EC2 instances to be added to the build slave list. | ||
+ | <div style="background-color: grey; text-align: center;"> | ||
+ | After looking more closely at how the buildslave is created, this goal doesn't make any sense, since this is not really how the buildslave list works. | ||
+ | </div> | ||
+ | </td> | ||
+ | <td style="background-color: white; text-align: center; font-size: bigger">Cut</td> | ||
+ | <td>[[User:Awdelyea|Adam Delyea]]</td> | ||
+ | <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">Cut</td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr> | ||
+ | <td>Start a new build on an EC2 instance</td> | ||
+ | <td>Allow Buildbot to successfully start a build using a build slave on an EC2 instance</td> | ||
+ | <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td> | ||
+ | <td>[[User:Awdelyea|Adam Delyea]]</td> | ||
+ | <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | <td> </td> | ||
+ | </tr> | ||
+ | </table |
Latest revision as of 12:59, 1 February 2008
Contents
Release 0.2
Goals
- Start New Instances
- Add new instances to build slave list
- Start a build on an EC2 instance build slave
Downloads
EC2BuildSlave.py
*Just put this file into your buildbot installation folder so python can access it
Master.cfg
About
To use the EC2 service with Buildbot, there needs to be some way for Buildbot to dynamically generate a list of build slaves. These build slaves (or just slaves) are hosted as a virtual machine on the EC2 service.
This will work by extending the BuildSlave class to add in some new functionality for starting a new EC2 instance. So, every time you add a new slave to the slave list, another instance will be spwaned, so that you can spawn as many instances as you think you will need to complete a build.
This new BuildSlave class will start a new instance, which will then proceed to send the connection information of the master to the new instance. How exactly, I'm not exactly sure, because it takes a minute for the virtual instance to start up.
The rest basically takes care of itself.
Still have to think about how to turn the new EC2 instances off after the build is done.
0.2.1
About
I have made a slight modification to the EC2BuildSlave. It now requires some additional input, because I had been hardcoding some values in, and that's sloppy, so I corrected it to allow you to put any variable parameters in the config file.
Basically, you will lay out a new EC2BuildSlave like this:
from buildbot.EC2BuildSlave import EC2BuildSlave c['slaves'] = [EC2BuildSlave("bot1name", "bot1passwd", "public key", "private key", "dns", "instance-id")] //Where dns = www.whatever.com:8898, or 88.123.55.456:8898 //and public/private key is your public/private key from Amazon //and instance-id is the instance you would like to launch ("ami-87d530ee")
Downloads
- [Patch]
The EC2BuildSlave.py goes into your python's framework folder for Buildbot (note: on my mac, this is
/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/buildbot/)
Tasks
Task | Details | Priority | Contributors | Status | Target | Completed | Link(s) |
---|---|---|---|---|---|---|---|
Start new instances | Allow Buildbot to spawn an instance on demand. This could possibly be a function called right before the build slave list is populated, and would pass back an array of build slaves. | High | Adam Delyea | Done | |||
Allow newly created EC2 instances to be added to the build slave list.
After looking more closely at how the buildslave is created, this goal doesn't make any sense, since this is not really how the buildslave list works. |
Cut | Adam Delyea | Cut | ||||
Start a new build on an EC2 instance | Allow Buildbot to successfully start a build using a build slave on an EC2 instance | High | Adam Delyea | Done |