Changes

Jump to: navigation, search

Buildbot and EC2

210 bytes added, 11:23, 26 March 2008
Releases
Implements [[Sample Project| iSampleProject]]
 
== Project Name ==
== Project Contributor(s) ==
[[User:dominic|Dominic Baranski]]
== Project Details == === Release 0.1 === ==== Goals ====* Add in a new build step to Buildbot* Allow Buildbot to connect with Amazon's EC2 service ==== Downloads ==== &nbsp;&nbsp;&nbsp;&nbsp;[http://matrix.senecac.on.ca/~awdelyea/EC2_build_step_nokeys.py EC2_build_step_nokeys.py] &nbsp;&nbsp;&nbsp;&nbsp;Note: You will need to install the boto library located [httpUser://boto.googlecode.com/files/boto-0.9a.tar.gz hereArmenzg|Armen Zambrano].  ==== About ==== Basically, this first version attempts to connect to an EC2 account, and then display the connection information to show that it has connected. It uses a library called "boto", and this library is used to connect to all of [http://www.amazon.com/gp/browse.html?node=3435361 Amazon's Web ServicesTo use this in a Buildbot configuration file, simply call the connect_to_ec2() function, which takes in as paramaters, an Amazon id key, and an Amazon secret key. Example:<pre> connection = connect_to_ec2("73ghf9h38fh", "75vo87rVO*&V%O7o75v7i%i75I&5li7%i75")</pre> ---- === Release 0.2 === ==== Goals ====
* Start New Instances* Add new instances to build slave list* Start a build on an EC2 instance build slave[[User:david.humphrey|Dave Humphrey]]
==== Downloads ==Releases ==
==== About ====You can see more information about individual releases by following the links below.
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 and EC2 service/0. 1]]
Probably the best way to do this is to extend the BuildSlave class, * [[Buildbot and make a new class called EC2BuildSlaveEC2/0. 2]]
Theres a couple good reasons for extending this class. One big one I can think about is that the new class will have a different way of disconnecting, where it will have to send a command to the * [[Buildbot and EC2 service to shut the instance down (thats if it's not being used by some other build master)/0.3]]
Making this new slave class will also be a much neater way to implement this new functionality, instead of having functions just randomly * [[Buildbot and haphazardly placed all overEC2/0.4]]
Lots more research * [[Buildbot and code reviewing is still on the horizon for this project, but this release should be ready in a months timeEC2/0.----5]]
=== Release * [[Buildbot and EC2/0.3 ===6 | Buildbot and EC2/0.6/0.7]]
==== Goals ====* [[Buildbot and Testing|Tangential Testing on Buildbot Release / 0.8]]
==== Downloads ==== ==== About ====* [[Buildbot and EC2/0.9]]
== Tasks ==
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
<th style="width: 1517%;"><br />'''''Task'''''<br /><br /></th> <th style="width: 4535%;"><br />'''''Details'''''<br /><br /></th> <th style="width: 105%;"><br />'''''Priority'''''<br /><br /></th> <th style="width: 10%;"><br />'''''Contributors'''''<br /><br /></th> <th style="width: 1015%;"><br />'''''Status'''''<br /><br /></th> <th style=" width: 4%;"><br />'''''Target'''''<br /><br /></th> <th style=" width: 4%;"><br />'''''Completed'''''<br /><br /></th> <th style="width: 10%;"><br />'''''Link'''''(s)<br /><br /></th>  <tr> <td>0.1 Release</td> <td>Covering the basics</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>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr>
<tr>
<td>Define new build step0.2 Release</td> <td>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.</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>Adam Delyea</td>
<td>&nbsp;</td>
<td>[http:&nbsp;<//buildbot.net/repos/release/docs/buildbot.html#Writing-New-BuildSteps Writing New Build Steps]td> <td>&nbsp;</td>
</tr>
<tr>
<td>Connect To EC2 using Python0.3 Release</td> <td>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.</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>Adam Delyea</td>
<td>&nbsp;</td>
<td>&nbsp;<ul><li>[http://code.google.com/p/boto/ Boto Amazon Web Services Library in Python]</li><li>[http://jimmyg.org/2007/09/01/amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java/ EC2 hearts Python]</litd> </ultd>&nbsp;</td>
</tr>
<tr>
<td>Start new instances0.4 Release</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: orangered; 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>In Progress, On Track14/1/08</td> <td>14/1/08</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Add new instances to build slave list0.5 Release</td> <td>Allow newly created EC2 instances to be added to the build slave list.</td> <td style="background-color: orangered; text-align: center; font-weight: bold; font-size: bigger">High</td> <td>[[User:Awdelyea|Adam Delyea]]</td> <tdstyle="background-color: SkyBlue; text-align: center; font-weight: bold; font-size: bigger">In Progress, On Track</td> <td>3/1/08</td> <td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Start a new build on an Testing</td> <td>People needed to download the revisions and test them to make sure it works in different environments. Note, this will require you to have your own EC2 instanceaccount. </td> <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td> <tdstyle="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">Allow Buildbot to successfully start a build using a build slave NEEDED! ***<br />[http://zenit.senecac.on an EC2 instance.ca/wiki/index.php/User:dominic Dominic Baranski]</td> <td style="background-color: orangegrey; text-align: center; font-weight: bold; font-size: bigger">HighExpired</td> <td>Adam Delyea&nbsp;</td> <td>In Progress, On Track&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Load a script on startup in Linux<del>Different Builds</del></td> <td>Make <del>Need different projects to try and build, to make sure it possible works to have build projects other than Mozilla</del><br />This is no longer a script load when Linux startspriority. Building with Mozilla is the focus of this project. The EC2 functionality can be extracted and used to build any program / system.</td> <td style="background-color: lightbluegrey; text-align: center; font-weight: bold; font-size: bigger">LowExpired</td> <td style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***<br />[http://zenit.senecac.on.ca/wiki/index.php/User:dominic Dominic Baranski]</td> <td style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td> <td>Not Started&nbsp;</td> <td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>TestingComplete Documentation</td> <td>People needed to download the revisions and test them to make sure it works in different environments.</td> <td style="background-color: lightblueorange; text-align: center; font-weight: bold; font-size: bigger">LowMedium</td> <td>[[User:Awdelyea|Adam Delyea]]</td> <td style="background-color: goldgreen; text-align: center; font-weight: bold; font-size: bigger">NEEDED! ***In Progress</td> <td>Not Started&nbsp;</td> <td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
== Contributions ==
<br/><div style="background-color: gold; text-align: center; font-weight: bold; font-size: bigger">&nbsp;<br />*** Would you like to contribute? Well here's an excellent opportunity for you to do just that! Feel free to e-mail me at <awdelyea@learngmail.senecac.on.cacom><br />&nbsp;</div><br/>
== Project Resources ==
== Project News ==
 
For a less formal, and more up-to-date view on whats happening, see the [http://www.awdelyea.wordpress.com BLOG].
2007-09-17: Project claimed!
2007-10-12: Release v0.2 loosely defined. More detail to follow.
 
2007-11-17: Release v0.2 is complete and available for download: can start an instance and start an EC2BuildSlave
 
2007-11-21: Release v0.2.1 is complete and available for download: now to include variable EC2 users, and instances, and DNS'
 
2007-12-13: Release v0.3 is complete and available for download: easier to install and setup, can use to build projects now
 
2008-01-14: Release v0.4 Defined. In the process of getting accounts and machines for Try Server Farm.
 
'''''2008-02-01: Task List and Release News is being moved to individual Release Pages. See individual Releases for more information.'''''
1
edit

Navigation menu