Build:Tinderbox Setup

From MozillaWiki
Jump to: navigation, search

Setting up environment

Configuration files for tinderbox are kept in CVS, in the mozilla repository (mozilla/tools/tinderbox-configs).

Tinderboxes use the "bash" shell. This is the default on RH/Fedora Linux, Mac OS X, and Cygwin/MSYS (Windows).

Setting up files

  • Create a directory
    • Mac and Unix: /builds/tinderbox
    • Windows: /d/builds/tinderbox or /e/builds/tinderbox
  • Change to that directory
  • cvs co mozilla/tools/tinderbox mozilla/tools/performance/startup
  • ln -s mozilla/tools/tinderbox/ .
  • ln -s mozilla/tools/tinderbox/tinderbox .
  • for each build tree you want to create
    • make a subdirectory for the build tree
    • change to that directory
    • ../mozilla/tools/tinderbox/install-links
    • rm -i tinderbox
    • ln -s ../mozilla/tools/performance/startup/startup-test.html
    • ./ --example-config >
    • rm
    • ln -s
    • edit the configuration (see below)
  • ./ --example-config >
  • edit the with information for each build tree
  • To update configs from CVS, the following option should be added to
    • --cvsup-dir <path_to_tinderbox>/build/tinderbox-configs/

Setting up Software

  • Linux tinderboxes running the startup performance test with perl < 5.8 need to have the Time::HiRes perl module installed, generally from a perl-Time-HiRes RPM. Failure to install the module will show up as wildly fluctuating numbers caused by the last three digits of the query string for startup-test.html always being "000".
  • Mac OS X tinderboxes that use $TestsPhoneHome will need to have perl modules installed. If this is not done, links to graphs will appear, but no graph data will have reached the server so the graphs will be blank. A way to do this that works (I think) is:
    • sudo perl -MCPAN -eshell
    • say no to manual configuration!
    • install LWP::UserAgent
    • say no to all the questions, except the one about unsatisfied dependencies
    • quit
    • test that it worked with perl -e 'use LWP::UserAgent; use HTTP::Request;' configuration

Performance tests

  • tinderboxes running performance tests should have $CleanProfile set to 1
    • at some point we'll come up with a better solution for reliability that will use a more realistic profile
  • tinderboxes running performance tests should have the timeouts for the tests reduced as much as possible, since many of the tests wait for the timeout to be considered finished
  • if performance test numbers are stable, $TestsPhoneHome should be set to 1 so that we have graphs
    • you need to install perl modules for this on Mac OS X (see Setting Up Software, above).