ReleaseEngineering/How To/Add a new type of build

From MozillaWiki
Jump to: navigation, search

When you're going to add a new build it is different than adding a new test to an existing platform/build. It is much more involved.

Here are some tips:

  • Add a new entry to PLATFORM_VARS (e.g. 'linux64-mulet') to mozilla/config.py
    • Determining which values to set and what value is very hard; see table below to hope to figure it out
  • Add your build to mozilla/project-branches.py
    • Use lock_platforms and a 'platforms' dict with the key for your platform
  • Disable

Some of this information might be useful. I'm only documenting the ones that are likely to be needed. NOTE: There are a lot of other variables that are deprecated or not needed for most cases. NOTE2: Setting a build for b2g might need a different set of needed values. NOTE3: This is very likely to get out of date, however, it is better than nothing

Key Information Default
mozharness_config Look at other code blocks for possible values. n/a
base_name This generates the builder name. If you use "%(platform)s_%(branch)s" you will get something like this "linux64-mulet_fig_dep" n/a
slaves This is on which platform it will run. See other jobs to determine your right value. "mock" represents the Linux 64-bit pool. n/a
stage_product/stage_platform It determine where on the "stage" server we will upload the builds -> http://stage.mozilla.org/pub/mozilla.org/%(stage_product)s/tinderbox-builds/%(branch)s-%(stage_platform)s n/a
mozconfig * in_tree: If you use it then you need to also set the path to the mozconfig on the actual tree n/a
src_mozconfig Path to mozconfig None
try_by_default If the value is set to "False" then using "-p all" on developer's TrySyntax will not trigger this build True
consider_for_nightly Should this platform determine if we should trigger a nightly build? (see this code) True
mock_target Possible known values are: mozilla-centos6-i386 and mozilla-centos6-x86_64 None

Add tests for your new build

  • In mozilla-tests/config.py add a new entry for PLATFORMS and BRANCH_UNITTESTS_VARS
    • Create the associated PLATFORMS block
    • The key to this entry must be the same one as specified as "unitest_platform" in your mozilla/config.py values
    • For 'slave_platforms' you can re-use the one of another platform
        • This will save you having to make changes to BuildSlaves.py and others