ReleaseEngineering/How To/Add a new type of build
From MozillaWiki
< ReleaseEngineering | How To
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