Difference between revisions of "Add to Try Server Automated Testing Support"

From CDOT Wiki
Jump to: navigation, search
m (Added link to source code)
(Added tasks)
 
(10 intermediate revisions by the same user not shown)
Line 3: Line 3:
  
 
* My blog's label explaining my updates is this: [http://armenzg.blogspot.com/search/label/buildbot%20automated%20testing%20integration (armenzg)Buildbot automated testing integration]
 
* My blog's label explaining my updates is this: [http://armenzg.blogspot.com/search/label/buildbot%20automated%20testing%20integration (armenzg)Buildbot automated testing integration]
* My code so far is in this repository: [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/automated-testing/ svn:Seneca Hera Try Server - automated-testing integration]
+
* <strike>My code so far is in this repository: [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/automated-testing/ svn:Seneca Hera Try Server - automated-testing integration]</strike> I will make available of the code in Hera which will have the EC2 integration and the automated testing integration
  
 
== People ==
 
== People ==
 
* Armen Zambrano G. (armenzg) #seneca channel
 
* Armen Zambrano G. (armenzg) #seneca channel
* People from Mozilla helping me: Rob Campbell, Robert Helmer, Ben Hearsum, Robert Sayre, Mike Shaver, Adam Delyea and Dave Humphrey
+
* People from Mozilla helping me: Rob Campbell, Robert Helmer, Ben Hearsum, Robert Sayre, Mike Shaver, Adam Delyea and Dave Humphrey
  
 +
== News ==
 +
* 16-Apr-2008
 +
** Updated wiki page
 +
** Reftests was not running properly (it timed out - [http://hera.senecac.on.ca:8010/builders/lin-test/builds/42/steps/reftest/logs/stdio stdio] - exit code -1 after 1200secs)
 +
** Changed DISPLAY to :2 and [http://hera.senecac.on.ca:8010/builders/lin-test/builds/45 build 45] shows that we got '''GREEN''' with reftest
 +
** I have to add cronjob to run '''perl processchange.pl''' every 2 mins
 +
** There are 2 linux slaves on vmlinux1.hera
 +
** To upload a patch you must use an LDAP account (I have to investigate this)
 +
* 15-Apr-2008
 +
** '''The try server with unit tests runs properly'''
 +
** Forked on tryserver account, sendchange.cgi and sendchange-ui.pm
 +
** Forked on buildmaster account, processchanges.pl and download.log
 +
** All of the previous files have been copied with suffix '''_test'''
 +
** Created on tryserver and buildmaster the folder '''"patches_test"'''
 +
* 12-Apr-2008
 +
** We can now run the Unit Tests on '''vmlinux1.hera''' which is a virtual machine using the [http://wiki.mozilla.org/ReferencePlatforms/BuildBot#Steps_already_completed_on_the_CentOS_5_Image CentOS 5 image]
 +
** We needed a DISPLAY to display in the unit tests, I set on the steps the value DISPLAY=:0
 +
** We needed to start an X server; I found the way to do it was '''startx'''(maybe xstart, not sure), which started the desktop environment. Used '''ps -ef | grep X''' to find out.
 +
** There is '''X :0''' (started by root), '''Xvnc :1''' and '''Xvnc :2'''
 +
* 21-Mar-2008
 +
** Access to the [http://hera.senecac.on.ca:8010 waterfall view of Hera's buildbot] and force a build by selecting [http://hera.senecac.on.ca:8010/builders/lin-test lin-test] link that shows you the builder's status
 +
** When forcing a build I do not get immediate builds
 +
** The tests are not running properly ('''Error: no display specified''')
 +
** I do not know why do I see the code been build with '''gmake'''
 +
** Links to see some of the forced builds I did: [http://hera.senecac.on.ca:8010/builders/lin-test/builds/13 #13] [http://hera.senecac.on.ca:8010/builders/lin-test/builds/14 #14] [http://hera.senecac.on.ca:8010/builders/lin-test/builds/15 #15] [http://hera.senecac.on.ca:8010/builders/lin-test/builds/16 #16] [http://hera.senecac.on.ca:8010/builders/lin-test/builds/17 #17]
 +
* 18-Mar-2008
 +
** Granted access to the Hera server
 +
* 16-Feb-2008
 +
** There will be no release this week, since I have been working on the [[Buildbot and Cairo]] project
 +
** It seems that Adam has been setting up the first node and the slaves during this week. I will probably have an account '''next week'''.
 +
* 1-Feb-2008
 +
** Since I could not wait for the Seneca Hera Try Server to be ready, I decided to set up buildbot on my laptop and so far is working
  
== News ==
+
* 29-Jan-2008
* 18-Jan-2007
+
** SERVER NEWS: The main OS (CentOS 5.1 and Windows 2003 Server) are installed. Once they are configured we will duplicate them to the rest of the nodes.
 +
** Soon the server will be completely running and we will have access to it
 +
** I have added a repository [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/automated-testing/ svn:Seneca Hera Try Server - automated-testing integration] an I am modifying the master.cfg file to meet the purposes; It is based on [http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/ buildbot-configs/testing/unittest/]
 +
** I might set up this Saturday my own try server at home
 +
[[Image:Browsing mozbuild(py).jpeg|thumb|mozbuild.py and the test suites classes defined]]
 +
* 18-Jan-2008
 
** We are waiting for the Buildbot Farm to be set up at Seneca
 
** We are waiting for the Buildbot Farm to be set up at Seneca
 
** At this point I have been able to run "make check" tests and mochitests. Explained in blog how to do this
 
** At this point I have been able to run "make check" tests and mochitests. Explained in blog how to do this
 
** Read Buildbot manual, discovered that I have to write some Build Steps but there's some configuration done by the community (check links section)
 
** Read Buildbot manual, discovered that I have to write some Build Steps but there's some configuration done by the community (check links section)
  
 +
== Releases ==
 +
'''NOTE: I did not work on this project for a month but instead I worked on the Cairo project'''
 +
<blockquote>
 +
=== Release Apr. 9th ===
 +
* You can upload a patch through [http://hera.senecac.on.ca/tryserver/cgi-bin/sendchange_test.cgi sendchange_test.cgi]. You can also upload another .mozconfig, which overwrites default .mozconfig. Please specify the proper patch level (we suggest to create diffs from mozilla/ and select 0 as the patch level)
 +
* Wait for a couple of minutes and refresh [http://hera.senecac.on.ca:8010/] until you see your build running
 +
* I would like to show the steps to make everything happen in your machines but I have not setup this server. Assuming we were in the same environment/setup:
 +
<blockquote>
 +
==== Steps ====
 +
How to setup a tryserver ([http://wiki.mozilla.org/Build:TryServer:Installing])<br />
 +
'''Setting up the buildmaster'''
 +
# cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d tryserver mozilla/tools/buildbot-configs/tryserver
 +
# cd tryserver
 +
(This brings '''env.py''', '''tryserver/steps.py''' and '''unittest/steps.py''' with others)
 +
# cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbotcustom mozilla/tools/buildbotcustom
 +
# cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d processor mozilla/webtools/buildbot-try/processchanges.pl
 +
# mv processor/processchanges.pl .
 +
# rm -rf processor
 +
# TBA - IN HERE TO BE ADDED STEP TO CHECK OUT MASTER.CFG
  
== Links ==
+
</blockquote>
{|
+
=== Release Apr. 5th ===
|-
+
* Nothing to release, I have only been able to run build with tests (with warnings) in my designated
|class="header"|heading 1
+
BRANCH of slaves
|class="header"|heading 2
+
* The form to upload a test to the tests branch has been created
|-
+
=== Release Mar.21st ===
| Buildbot configuration (1) for Unit Testing (check master.cfg file)
+
* Blog post about setting the automated tests on Hera - [http://armenzg.blogspot.com/2008/03/armenzg-sess16-automated-testing-on.html armenzg: Sess16 - Automated testing on Hera]
| http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/
+
* The files that have been modified in Hera are: master.cfg (to add the steps to do the tests), mozbuild.py(contains classes that group few steps into one and does more intelligent steps), mozconfig-linux-tests(which contains the .mozconfig for the lin-test builder) and env.py (which contains MozEnvironments['centos'] environment variables)
|-
+
* Read about some errors encountered in the NEWS section in this page
| Buildbot configuration (2) for a Tryserver (check master.cfg file)
 
| http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/tryserver/
 
|-
 
|
 
|
 
|-
 
|
 
|
 
  
|-
+
=== 0.5 release ===
| Building Mozilla with Buildbot
+
This release was meant to just allow buildbot to run tests steps after a build. In Hera should do the same and also allow the "try-server" way.
| http://zenit.senecac.on.ca/wiki/index.php/Building_Mozilla_with_Buildbot
+
==== Steps ====
|-
+
NOTE: I assume you can build mozilla firefox. This steps are to build on Linux (my flavour is Ubuntu7.1)
|}
+
# sudo apt-get install buildbot
 +
# buildbot --version
 +
Buildbot version: 0.7.5
 +
Twisted version: 2.5.0
 +
# buildbot create-master ~/BuildbotMaster
 +
# buildbot create-slave ~/Buildslaves localhost:9989 slave1 slavepassword1
 +
# Untar this [http://matrix.senecac.on.ca/~azambran/mozilla/buildbot-config/BuildbotMasterArmen0.5.tar.gz BuildbotMasterArmen0.5.tar.gz file] in your ~/BuildbotMaster directory
 +
# buildbot start ~/BuildbotMaster
 +
# buildbot start ~/Buildslaves/
 +
# open your web browser and open this URL http://localhost:8010, you should see the results
 +
NOTE 2: There is more explanation in these two posts ([http://armenzg.blogspot.com/2008/02/armenzg-sess10-buildbot-initial-set-up.html Sess10] and [http://armenzg.blogspot.com/2008/02/armenzg-sess11-how-to-set-up-buildbot.html Sess11]
 +
NOTE 3: The only way for me to assure that these steps works for everyone, I would have to try it from a clean install of Ubuntu
  
 +
</blockquote>
 +
=== Info ===
 +
* You can see which tasks get done at the bottom of this page
 +
* <strike>I will add the instructions on how to set up a Buildbot try server when I do it at my house</strike>
 +
* The image on the side shows the classes that are defined in the [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/automated-testing/mozbuild.py mozbuild.py] which are later on used as Buildsteps on the [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/automated-testing/master.cfg master.cfg] file
  
 
== Tasks ==
 
== Tasks ==
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
 
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=3 cellspacing=0>
 
     <th style="width: 15%;">Task</th>
 
     <th style="width: 15%;">Task</th>
     <th style="width: 35%>Details</th>
+
     <th style="width: 42%>Details</th>
 
     <th style="width: 5%;">Priority</th>
 
     <th style="width: 5%;">Priority</th>
     <th style="width: 5%;">Contributors</th>
+
     <th style="width: 5%;">Status</th>
    <th style="width: 10%;">Status</th>
+
     <th style="width: 8%;">Target</th>
     <th style="width: 5%;">Target</th>
+
     <th style="width: 25%;">Link(s)</th>
     <th style="width: 5%;">Completed</th>
 
    <th style="width: 20%;">Link(s)</th>
 
  
 
     <tr>
 
     <tr>
Line 57: Line 119:
 
         <td>Learn how to run Tunits (make check or xpcshell-base tests) and explained them</td>
 
         <td>Learn how to run Tunits (make check or xpcshell-base tests) and explained them</td>
 
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
         <td style="background-color: White; text-align: center;">armenzg</td>
+
         <td style="background-color: Green; text-align: center; font-weight: bold;">DONE</td>
        <td style="background-color: Green; text-align: center;">Done</td>
+
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">0.4 rel.</td>
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">0.4 rel. week</td>
 
        <td>01/13/08</td>
 
 
         <td>[http://armenzg.blogspot.com/2008/01/sess5-xpcshell-based-unit-tests-tunits.html (armenzg's post) Xpcshell based uni tests]</td>
 
         <td>[http://armenzg.blogspot.com/2008/01/sess5-xpcshell-based-unit-tests-tunits.html (armenzg's post) Xpcshell based uni tests]</td>
 
     </tr>
 
     </tr>
Line 67: Line 127:
 
         <td>Learn how to run mochitests and explain them</td>
 
         <td>Learn how to run mochitests and explain them</td>
 
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
         <td style="background-color: White; text-align: center;">armenzg</td>
+
         <td style="background-color: Green; text-align: center; font-weight: bold;">DONE</td>
         <td style="background-color: Green; text-align: center;">Done</td>
+
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">0.4 rel.</td>
        <td>0.4 release week</td>
 
        <td>&nbsp;</td>
 
 
         <td>No post yet but have run them</td>
 
         <td>No post yet but have run them</td>
 
     </tr>
 
     </tr>
Line 76: Line 134:
 
         <td>Buildbot Manual</td>
 
         <td>Buildbot Manual</td>
 
         <td>Learn basics of Buildbot that apply to this project</td>
 
         <td>Learn basics of Buildbot that apply to this project</td>
         <td style="background-color: White; text-align: center;">Med</td>
+
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
        <td style="background-color: White; text-align: center;">armenzg</td>
+
         <td style="background-color: Green; text-align: center; font-weight: bold;">DONE</td>
         <td style="background-color: Green; text-align: center;">Done</td>
+
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">0.4 rel.</td>
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">01/18/08</td>
 
        <td>&nbsp;</td>
 
 
         <td>No post - [http://buildbot.sourceforge.net/manual-0.7.5.html Buildbot Manual]</td>
 
         <td>No post - [http://buildbot.sourceforge.net/manual-0.7.5.html Buildbot Manual]</td>
 
     </tr>
 
     </tr>
Line 86: Line 142:
 
         <td>Analize Master.cfg file</td>
 
         <td>Analize Master.cfg file</td>
 
         <td>Try to see what is already written about Buildsteps relating Unit Testing</td>
 
         <td>Try to see what is already written about Buildsteps relating Unit Testing</td>
         <td style="background-color: White; text-align: center;">Med</td>
+
         <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
         <td style="background-color: White; text-align: center;">armenzg</td>
+
         <td style="background-color: Green; text-align: center; font-weight: bold;">Ongoing</td>
         <td>&nbsp;</td>
+
         <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">N/A</td>
        <td>&nbsp;</td>
 
        <td>Ongoing</td>
 
 
         <td>No post - [http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/ buildbot-configs/testing/unittest/]</td>
 
         <td>No post - [http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/ buildbot-configs/testing/unittest/]</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td>&nbsp;</td><!-- Link -->
+
         <td>Set up Buildbot</td><!-- TASK -->
         <td>&nbsp;</td><!-- Link -->
+
        <td>Be able to build firefox and run unit tests</td><!-- DETAILS -->
        <td style="background-color: White; text-align: center;">&nbsp;</td><!-- Link -->
+
        <td style="background-color: Red; text-align: center; font-weight: bold; font-size: bigger">High</td><!-- Priority-->
        <td style="background-color: White; text-align: center;">armenzg</td><!-- Link -->
+
        <td style="background-color: Green; text-align: center; font-weight: bold;">Done</td><!-- Status-->
        <td style="background-color: White; text-align: center;">&nbsp;</td><!-- Link -->
+
        <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">0.5 rel.</td><!-- For which release-->
        <td>&nbsp;</td><!-- Link -->
+
        <td>[http://armenzg.blogspot.com/2008/02/armenzg-sess10-buildbot-initial-set-up.html Sess10] & [http://armenzg.blogspot.com/2008/02/armenzg-sess11-how-to-set-up-buildbot.html Sess11]</td><!-- Link to blog post-->
        <td>&nbsp;</td><!-- Link -->
+
    </tr>
        <td>&nbsp;</td><!-- Link -->
+
    <tr>
 +
        <td><strike>Set up "try server"</strike></td><!-- TASK -->
 +
        <td><strike>Learn how to set up my buildbot as a "try server"</strike></td><!-- DETAILS -->
 +
        <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td><!-- Priority-->
 +
        <td style="background-color: White; text-align: center; font-weight: bold;">TBA</td><!-- Status-->
 +
        <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">?? rel.</td><!-- For which release-->
 +
         <td>&nbsp;</td><!-- Link to blog post-->
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Add steps to master.cfg</td>
 +
<!-- DETAILS --> <td>Add the steps for linux required to run tests after a build</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">High</td>
 +
<!-- Status-->  <td style="background-color: Green; text-align: center; font-weight: bold;">Done</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Mar.21st</td>
 +
<!-- Links-->    <td>[http://armenzg.blogspot.com/2008/03/armenzg-sess16-automated-testing-on.html (armenzg's post) Automated testing on Hera]</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Add steps for Mac and Windows</td>
 +
<!-- DETAILS --> <td>Wait until the mac and windows slaves are up and running</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">Waiting</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">???</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Add "try server" steps</td>
 +
<!-- DETAILS --> <td>We need to be able to "TRY" a patch and run tests in all platforms</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">HIGH</td>
 +
<!-- Status-->  <td style="background-color: Green; text-align: center; font-weight: bold;">DONE</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Apr.4</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Enable windows slave</td>
 +
<!-- DETAILS --> <td>&nbsp;</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">HIGH</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Apr 17</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Enable mac slave</td>
 +
<!-- DETAILS --> <td>&nbsp;</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">HIGH</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Apr 17</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Sendchange form</td>
 +
<!-- DETAILS --> <td>Customize the sendchange-ui_test.pm file - '''It could do both things'''</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Low</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">TBA</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Make builds available</td>
 +
<!-- DETAILS --> <td>&nbsp;</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">Med</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Apr 18</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>Cron jobs</td>
 +
<!-- DETAILS --> <td>processchanges_test.pl and delete packaged builds</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">HIGH</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">Apr 16</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
<!-- TASK -->    <td>&nbsp;</td>
 +
<!-- DETAILS --> <td>&nbsp;</td>
 +
<!-- Priority--> <td style="background-color: Orange; text-align: center; font-weight: bold; font-size: bigger">&nbsp;</td>
 +
<!-- Status-->  <td style="background-color: White; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- For when--> <td style="background-color: YellowGreen; text-align: center; font-weight: bold;">&nbsp;</td>
 +
<!-- Links-->    <td>&nbsp;</td>
 
     </tr>
 
     </tr>
 
<table>
 
<table>
 +
 +
== Links ==
 +
{| border="1"
 +
|-
 +
|class="header"|Description
 +
|class="header"|Link
 +
|-
 +
| Seneca Hera Try Server
 +
| http://hera.senecac.on.ca:8010/
 +
|-
 +
| Buildbot configuration (1) for Unit Testing (check master.cfg file)
 +
| http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/
 +
|-
 +
| Buildbot configuration (2) for a Tryserver (check master.cfg file)
 +
| http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/tryserver/
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
 +
|-
 +
| Building Mozilla with Buildbot
 +
| http://zenit.senecac.on.ca/wiki/index.php/Building_Mozilla_with_Buildbot
 +
|-
 +
|}

Latest revision as of 18:34, 16 April 2008

Introduction

We are trying to add to a Try Server, that will be set up at Seneca, automated testing support (TUnit (make check), mochitest, reftests, crashtest)

People

  • Armen Zambrano G. (armenzg) #seneca channel
  • People from Mozilla helping me: Rob Campbell, Robert Helmer, Ben Hearsum, Robert Sayre, Mike Shaver, Adam Delyea and Dave Humphrey

News

  • 16-Apr-2008
    • Updated wiki page
    • Reftests was not running properly (it timed out - stdio - exit code -1 after 1200secs)
    • Changed DISPLAY to :2 and build 45 shows that we got GREEN with reftest
    • I have to add cronjob to run perl processchange.pl every 2 mins
    • There are 2 linux slaves on vmlinux1.hera
    • To upload a patch you must use an LDAP account (I have to investigate this)
  • 15-Apr-2008
    • The try server with unit tests runs properly
    • Forked on tryserver account, sendchange.cgi and sendchange-ui.pm
    • Forked on buildmaster account, processchanges.pl and download.log
    • All of the previous files have been copied with suffix _test
    • Created on tryserver and buildmaster the folder "patches_test"
  • 12-Apr-2008
    • We can now run the Unit Tests on vmlinux1.hera which is a virtual machine using the CentOS 5 image
    • We needed a DISPLAY to display in the unit tests, I set on the steps the value DISPLAY=:0
    • We needed to start an X server; I found the way to do it was startx(maybe xstart, not sure), which started the desktop environment. Used ps -ef | grep X to find out.
    • There is X :0 (started by root), Xvnc :1 and Xvnc :2
  • 21-Mar-2008
    • Access to the waterfall view of Hera's buildbot and force a build by selecting lin-test link that shows you the builder's status
    • When forcing a build I do not get immediate builds
    • The tests are not running properly (Error: no display specified)
    • I do not know why do I see the code been build with gmake
    • Links to see some of the forced builds I did: #13 #14 #15 #16 #17
  • 18-Mar-2008
    • Granted access to the Hera server
  • 16-Feb-2008
    • There will be no release this week, since I have been working on the Buildbot and Cairo project
    • It seems that Adam has been setting up the first node and the slaves during this week. I will probably have an account next week.
  • 1-Feb-2008
    • Since I could not wait for the Seneca Hera Try Server to be ready, I decided to set up buildbot on my laptop and so far is working
  • 29-Jan-2008
    • SERVER NEWS: The main OS (CentOS 5.1 and Windows 2003 Server) are installed. Once they are configured we will duplicate them to the rest of the nodes.
    • Soon the server will be completely running and we will have access to it
    • I have added a repository svn:Seneca Hera Try Server - automated-testing integration an I am modifying the master.cfg file to meet the purposes; It is based on buildbot-configs/testing/unittest/
    • I might set up this Saturday my own try server at home
mozbuild.py and the test suites classes defined
  • 18-Jan-2008
    • We are waiting for the Buildbot Farm to be set up at Seneca
    • At this point I have been able to run "make check" tests and mochitests. Explained in blog how to do this
    • Read Buildbot manual, discovered that I have to write some Build Steps but there's some configuration done by the community (check links section)

Releases

NOTE: I did not work on this project for a month but instead I worked on the Cairo project

Release Apr. 9th

  • You can upload a patch through sendchange_test.cgi. You can also upload another .mozconfig, which overwrites default .mozconfig. Please specify the proper patch level (we suggest to create diffs from mozilla/ and select 0 as the patch level)
  • Wait for a couple of minutes and refresh [1] until you see your build running
  • I would like to show the steps to make everything happen in your machines but I have not setup this server. Assuming we were in the same environment/setup:

Steps

How to setup a tryserver ([2])
Setting up the buildmaster # cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d tryserver mozilla/tools/buildbot-configs/tryserver # cd tryserver (This brings env.py, tryserver/steps.py and unittest/steps.py with others) # cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbotcustom mozilla/tools/buildbotcustom # cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d processor mozilla/webtools/buildbot-try/processchanges.pl # mv processor/processchanges.pl . # rm -rf processor

  1. TBA - IN HERE TO BE ADDED STEP TO CHECK OUT MASTER.CFG

Release Apr. 5th

  • Nothing to release, I have only been able to run build with tests (with warnings) in my designated

BRANCH of slaves

  • The form to upload a test to the tests branch has been created

Release Mar.21st

  • Blog post about setting the automated tests on Hera - armenzg: Sess16 - Automated testing on Hera
  • The files that have been modified in Hera are: master.cfg (to add the steps to do the tests), mozbuild.py(contains classes that group few steps into one and does more intelligent steps), mozconfig-linux-tests(which contains the .mozconfig for the lin-test builder) and env.py (which contains MozEnvironments['centos'] environment variables)
  • Read about some errors encountered in the NEWS section in this page

0.5 release

This release was meant to just allow buildbot to run tests steps after a build. In Hera should do the same and also allow the "try-server" way.

Steps

NOTE: I assume you can build mozilla firefox. This steps are to build on Linux (my flavour is Ubuntu7.1)

# sudo apt-get install buildbot
# buildbot --version
Buildbot version: 0.7.5
Twisted version: 2.5.0
# buildbot create-master ~/BuildbotMaster
# buildbot create-slave ~/Buildslaves localhost:9989 slave1 slavepassword1
# Untar this BuildbotMasterArmen0.5.tar.gz file in your ~/BuildbotMaster directory
# buildbot start ~/BuildbotMaster
# buildbot start ~/Buildslaves/
# open your web browser and open this URL http://localhost:8010, you should see the results

NOTE 2: There is more explanation in these two posts (Sess10 and Sess11 NOTE 3: The only way for me to assure that these steps works for everyone, I would have to try it from a clean install of Ubuntu

Info

  • You can see which tasks get done at the bottom of this page
  • I will add the instructions on how to set up a Buildbot try server when I do it at my house
  • The image on the side shows the classes that are defined in the mozbuild.py which are later on used as Buildsteps on the master.cfg file

Tasks

Task Details Priority Status Target Link(s)
make check tests Learn how to run Tunits (make check or xpcshell-base tests) and explained them Med DONE 0.4 rel. (armenzg's post) Xpcshell based uni tests
mochitest tests Learn how to run mochitests and explain them Med DONE 0.4 rel. No post yet but have run them
Buildbot Manual Learn basics of Buildbot that apply to this project Med DONE 0.4 rel. No post - Buildbot Manual
Analize Master.cfg file Try to see what is already written about Buildsteps relating Unit Testing Med Ongoing N/A No post - buildbot-configs/testing/unittest/
Set up Buildbot Be able to build firefox and run unit tests High Done 0.5 rel. Sess10 & Sess11
Set up "try server" Learn how to set up my buildbot as a "try server"   TBA ?? rel.  
Add steps to master.cfg Add the steps for linux required to run tests after a build High Done Mar.21st (armenzg's post) Automated testing on Hera
Add steps for Mac and Windows Wait until the mac and windows slaves are up and running Med Waiting ???  
Add "try server" steps We need to be able to "TRY" a patch and run tests in all platforms HIGH DONE Apr.4  
Enable windows slave   HIGH   Apr 17  
Enable mac slave   HIGH   Apr 17  
Sendchange form Customize the sendchange-ui_test.pm file - It could do both things Low   TBA  
Make builds available   Med   Apr 18  
Cron jobs processchanges_test.pl and delete packaged builds HIGH   Apr 16  
           

Links

Description Link
Seneca Hera Try Server http://hera.senecac.on.ca:8010/
Buildbot configuration (1) for Unit Testing (check master.cfg file) http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/testing/unittest/
Buildbot configuration (2) for a Tryserver (check master.cfg file) http://lxr.mozilla.org/mozilla/source/tools/buildbot-configs/tryserver/
Building Mozilla with Buildbot http://zenit.senecac.on.ca/wiki/index.php/Building_Mozilla_with_Buildbot