Difference between revisions of "Buildbot and EC2"

From CDOT Wiki
Jump to: navigation, search
(Project News)
(Releases)
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
Implements [[Sample Project| iSampleProject]]
 +
 
== Project Name ==
 
== Project Name ==
  
Line 16: Line 18:
 
[[User:dominic|Dominic Baranski]]
 
[[User:dominic|Dominic Baranski]]
  
== Project Details ==
+
[[User:Armenzg|Armen Zambrano]]
  
=== Release 0.1 ===
+
[[User:david.humphrey|Dave Humphrey]]
    [[Buildbot and EC2/0.1]]
 
  
===     Release 0.2 ===
+
== Releases ==
    [[Buildbot and EC2/0.2]]
 
  
===      Release 0.3 ===
+
You can see more information about individual releases by following the links below.
    [[Buildbot and EC2/0.3]]
 
  
===      Release 0.4 ===
+
* [[Buildbot and EC2/0.1]]
    [[Buildbot and EC2/0.4]]
 
  
===      Release 0.5 ===
+
* [[Buildbot and EC2/0.2]]
    [[Buildbot and EC2/0.5]]
 
  
== Tasks ==
+
* [[Buildbot and EC2/0.3]]
  
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
+
* [[Buildbot and EC2/0.4]]
    <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>
+
* [[Buildbot and EC2/0.5]]
        <td>Downloadable Try Builds</td>
 
        <td>Allow users to download their completed builds</td>
 
        <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Medium</td>
 
        <td>[[User:Awdelyea|Adam Delyea]]</td>
 
        <td style="background-color: SkyBlue;"><div style="text-align: center; font-weight: bold;">In Progress</div>
 
        </td>
 
        <td style="background-color: Yellow; text-align: center; font-weight: bold;">03/02/08</td>
 
        <td>&nbsp;</td>
 
        <td></td>
 
    </tr>
 
  
    <tr>
+
* [[Buildbot and EC2/0.6 | Buildbot and EC2/0.6/0.7]]
        <td>Try Server Apache Authentication</td>
 
        <td>Authenticate users using the Apache config</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: SkyBlue;"><div style="text-align: center; font-weight: bold;">In Progress</div>
 
        </td>
 
        <td style="background-color: Yellow; text-align: center; font-weight: bold;">03/02/08</td>
 
        <td>&nbsp;</td>
 
        <td></td>
 
    </tr>
 
  
    <tr>
+
* [[Buildbot and Testing|Tangential Testing on Buildbot Release / 0.8]]
        <td>Seneca EC2 Account</td>
 
        <td>Set up an account for Seneca on Amazon's EC2 Service</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: SkyBlue;"><div style="text-align: center; font-weight: bold;">In Progress</div>
 
        </td>
 
        <td style="background-color: Yellow; text-align: center; font-weight: bold;">03/02/08</td>
 
        <td>&nbsp;</td>
 
        <td></td>
 
    </tr>
 
  
    <tr>
+
* [[Buildbot and EC2/0.9]]
        <td>Try Server @ Seneca</td>
 
        <td>Port Try Server from external server to internal servers</td>
 
        <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
        <td>[[User:Awdelyea|Adam Delyea]] [[User:David.humphrey|David Humphrey]]</td>
 
        <td style="background-color: SkyBlue;"><div style="text-align: center; font-weight: bold;">In Progress</div><br />- Dave is in the process of setting up access to the Mozilla@Seneca cluster
 
        </td>
 
        <td style="background-color: Yellow; text-align: center; font-weight: bold;">01/02/08</td>
 
        <td>&nbsp;</td>
 
        <td>[[Hera Try Server Setup]]</td>
 
    </tr>
 
  
    <tr>
+
== Tasks ==
        <td>Try Server</td>
 
        <td>Start a Try Server on a Linux machine.</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;">Done</td>
 
        <td style="background-color: green; text-align: center; font-weight: bold;">14/01/08</td>
 
        <td>14/01/08</td>
 
        <td>[http://wiki.mozilla.org/Build:TryServer Mozilla Try Server]</td>
 
    </tr>
 
  
     <tr>
+
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
        <td>EC2 on Try Server</td>
+
     <th style=" width: 17%;"><br />'''''Task'''''<br /><br /></th>
        <td>Make the Try Server use EC2 to spawn build slaves.</td>
+
    <th style=" width: 35%;"><br />'''''Details'''''<br /><br /></th>
        <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
    <th style=" width: 5%;"><br />'''''Priority'''''<br /><br /></th>
        <td>[[User:Awdelyea|Adam Delyea]]</td>
+
    <th style=" width: 10%;"><br />'''''Contributors'''''<br /><br /></th>
        <td style="background-color: green; text-align: center; font-weight: bold;">Done</td>
+
    <th style=" width: 15%;"><br />'''''Status'''''<br /><br /></th>
        <td style="background-color: green; text-align: center; font-weight: bold;">14/01/08</td>
+
    <th style=" width: 4%;"><br />'''''Target'''''<br /><br /></th>
        <td>14/01/08</td>
+
    <th style=" width: 4%;"><br />'''''Completed'''''<br /><br /></th>
        <td><!-- No Links --></td>
+
    <th style=" width: 10%;"><br />'''''Link'''''(s)<br /><br /></th>
    </tr>
 
  
 
     <tr>
 
     <tr>
         <td>Define new build step</td>
+
         <td>0.1 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>Covering the basics</td>
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</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>
 
        <td>[http://buildbot.net/repos/release/docs/buildbot.html#Writing-New-BuildSteps Writing New Build Steps]</td>
 
    </tr>
 
 
    <tr>
 
        <td>Connect To EC2 using Python</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>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
        <td><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]</li></ul></td>
 
 
     </tr>
 
     </tr>
  
 
     <tr>
 
     <tr>
         <td>Start new instances</td>
+
         <td>0.2 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></td>
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
Line 149: Line 77:
  
 
     <tr>
 
     <tr>
         <td><del>Add new instances to build slave list</del></td>
+
         <td>0.3 Release</td>
         <td>Allow newly created EC2 instances to be added to the build slave list.
+
         <td></td>
<div style="background-color: grey; text-align: center;">
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
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>[[User:Awdelyea|Adam Delyea]]</td>
         <td style="background-color: white; text-align: center; font-weight: bold; font-size: bigger">Cut</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>
 
         <td>&nbsp;</td>
Line 164: Line 88:
  
 
     <tr>
 
     <tr>
         <td>Start a new build on an EC2 instance</td>
+
         <td>0.4 Release</td>
         <td>Allow Buildbot to successfully start a build using a build slave on an EC2 instance</td>
+
         <td></td>
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
         <td>&nbsp;</td>
+
         <td>14/1/08</td>
         <td>&nbsp;</td>
+
         <td>14/1/08</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
     </tr>
 
     </tr>
  
 
     <tr>
 
     <tr>
         <td>Load a script on startup in Linux</td>
+
         <td>0.5 Release</td>
         <td>Make it possible to have a script load when Linux starts</td>
+
         <td></td>
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
+
         <td style="background-color: red; text-align: center; font-weight: bold; font-size: bigger">High</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">Done</td>
+
         <td style="background-color: SkyBlue; text-align: center; font-weight: bold; font-size: bigger">In Progress</td>
         <td>&nbsp;</td>
+
         <td>3/1/08</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 197: Line 121:
  
 
     <tr>
 
     <tr>
         <td>Different Builds</td>
+
         <td><del>Different Builds</del></td>
         <td>Need different projects to try and build, to make sure it works to build projects other than Mozilla</td>
+
         <td><del>Need different projects to try and build, to make sure it works to build projects other than Mozilla</del><br />This is no longer a priority. 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: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
 
         <td  style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</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: 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 style="background-color: grey; text-align: center; font-weight: bold; font-size: bigger">Expired</td>
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
    <tr>
 
        <td>Build Mozilla using an EC2 Instance</td>
 
        <td>Allow Buildbot to successfully build mozilla 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>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
 
         <td>&nbsp;</td>
Line 224: Line 137:
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td>[[User:Awdelyea|Adam Delyea]]</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">In Progress</td>
 
         <td style="background-color: green; text-align: center; font-weight: bold; font-size: bigger">In Progress</td>
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
        <td>&nbsp;</td>
 
    </tr>
 
 
    <tr>
 
        <td>Generic EC2 instance for Buildbot Slaves</td>
 
        <td>Making a generic EC2 Instance for Buildbot</td>
 
        <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Medium</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>Startup Scripts for making your own EC2 instances</td>
 
        <td></td>
 
        <td style="background-color: orange; text-align: center; font-weight: bold; font-size: bigger">Medium</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>
 
         <td>&nbsp;</td>
Line 255: Line 146:
  
 
<br/>
 
<br/>
<div style="background-color: gold; text-align: center;font-weight: bold;">&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@gmail.com><br />&nbsp;</div>
+
<div style="background-color: gold; text-align: center;font-weight: bold;">&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@gmail.com><br />&nbsp;</div><br/>
  
 
== Project Resources ==
 
== Project Resources ==

Latest revision as of 10:23, 26 March 2008

Implements iSampleProject

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)

Adam Delyea

Project Contributor(s)

Dominic Baranski

Armen Zambrano

Dave Humphrey

Releases

You can see more information about individual releases by following the links below.

Tasks


Task


Details


Priority


Contributors


Status


Target


Completed


Link(s)

0.1 Release Covering the basics High Adam Delyea Done      
0.2 Release High Adam Delyea Done      
0.3 Release High Adam Delyea Done      
0.4 Release High Adam Delyea Done 14/1/08 14/1/08  
0.5 Release High Adam Delyea In Progress 3/1/08    
Testing 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 account. Expired NEEDED! ***
Dominic Baranski
Expired      
Different Builds Need different projects to try and build, to make sure it works to build projects other than Mozilla
This is no longer a priority. Building with Mozilla is the focus of this project. The EC2 functionality can be extracted and used to build any program / system.
Expired NEEDED! ***
Dominic Baranski
Expired      
Complete Documentation Medium Adam Delyea In Progress      

Contributions


 
*** 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@gmail.com>
 

Project Resources

Project News

For a less formal, and more up-to-date view on whats happening, see the BLOG.

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.

2007-10-12: Release v0.1 is complete and available for download.

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.