Bug 1181713 - make a copy of mozharness b2g branch and put it in b2g release trees, based on 45206195f4ed, DONTBUILD r=mshal a=testing
authorJordan Lund <jlund@mozilla.com>
Wed, 08 Jul 2015 14:27:00 -0700
changeset 222165 e6585848a94a
parent 222164 5cfdf1a23772
child 222166 92049b3c4bb5
push id551
push userjlund@mozilla.com
push dateWed, 08 Jul 2015 21:30:27 +0000
treeherdermozilla-b2g34_v2_1@e6585848a94a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmshal, testing
bugs1181713
milestone34.0
Bug 1181713 - make a copy of mozharness b2g branch and put it in b2g release trees, based on 45206195f4ed, DONTBUILD r=mshal a=testing
testing/mozharness/LICENSE
testing/mozharness/README.txt
testing/mozharness/configs/android/android_panda_releng.py
testing/mozharness/configs/android/android_panda_talos_releng.py
testing/mozharness/configs/android/androidarm.py
testing/mozharness/configs/android/androidarm_4_3.py
testing/mozharness/configs/android/androidarm_dev.py
testing/mozharness/configs/android/androidx86.py
testing/mozharness/configs/b2g/desktop_automation_config.py
testing/mozharness/configs/b2g/emulator_automation_config.py
testing/mozharness/configs/b2g/emulator_test_config.py
testing/mozharness/configs/b2g/gaia_integration_config.py
testing/mozharness/configs/b2g/gaia_try.py
testing/mozharness/configs/b2g/gaia_unit_production_config.py
testing/mozharness/configs/b2g/gaia_unit_test_config.py
testing/mozharness/configs/b2g/generic_config.py
testing/mozharness/configs/b2g/mulet_config.py
testing/mozharness/configs/b2g/releng-emulator.py
testing/mozharness/configs/b2g/releng-fota-eng.py
testing/mozharness/configs/b2g/releng-fota-updates.py
testing/mozharness/configs/b2g/releng-otoro-eng.py
testing/mozharness/configs/b2g/releng-otoro.py
testing/mozharness/configs/b2g/releng-private-updates.py
testing/mozharness/configs/b2g/releng-try.py
testing/mozharness/configs/b2g/taskcluster-emulator.py
testing/mozharness/configs/b2g/taskcluster-phone.py
testing/mozharness/configs/b2g_bumper/master.py
testing/mozharness/configs/b2g_bumper/v1.4.py
testing/mozharness/configs/b2g_bumper/v2.0.py
testing/mozharness/configs/b2g_bumper/v2.1.py
testing/mozharness/configs/b2g_bumper/v2.1s.py
testing/mozharness/configs/b2g_bumper/v2.2.py
testing/mozharness/configs/balrog/production.py
testing/mozharness/configs/balrog/staging.py
testing/mozharness/configs/builds/branch_specifics.py
testing/mozharness/configs/builds/build_pool_specifics.py
testing/mozharness/configs/builds/releng_base_linux_32_builds.py
testing/mozharness/configs/builds/releng_base_linux_64_builds.py
testing/mozharness/configs/builds/releng_base_mac_64_builds.py
testing/mozharness/configs/builds/releng_base_windows_32_builds.py
testing/mozharness/configs/builds/releng_base_windows_64_builds.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_graphene.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_mulet.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_graphene.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_mulet.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_mulet.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_graphene.py
testing/mozharness/configs/developer_config.py
testing/mozharness/configs/hazards/build_b2g.py
testing/mozharness/configs/hazards/build_browser.py
testing/mozharness/configs/hazards/build_shell.py
testing/mozharness/configs/hazards/common.py
testing/mozharness/configs/luciddream/linux_config.py
testing/mozharness/configs/marionette/automation_emulator_config.py
testing/mozharness/configs/marionette/gaia_ui_test_emu_config.py
testing/mozharness/configs/marionette/gaia_ui_test_prod_config.py
testing/mozharness/configs/marionette/prod_config.py
testing/mozharness/configs/marionette/test_config.py
testing/mozharness/configs/marionette/windows_config.py
testing/mozharness/configs/merge_day/aurora_to_beta.py
testing/mozharness/configs/merge_day/b2g_branch_repos.py
testing/mozharness/configs/merge_day/b2g_tag.py
testing/mozharness/configs/merge_day/beta_to_release.py
testing/mozharness/configs/merge_day/central_to_aurora.py
testing/mozharness/configs/merge_day/release_to_esr.py
testing/mozharness/configs/merge_day/staging_beta_migration.py
testing/mozharness/configs/multi_locale/b2g_linux32.py
testing/mozharness/configs/multi_locale/b2g_linux64.py
testing/mozharness/configs/multi_locale/b2g_macosx64.py
testing/mozharness/configs/multi_locale/b2g_win32.py
testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json
testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json
testing/mozharness/configs/multi_locale/mozilla-aurora_android.json
testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json
testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json
testing/mozharness/configs/multi_locale/mozilla-beta_android.json
testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json
testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json
testing/mozharness/configs/multi_locale/mozilla-central_android.json
testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json
testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json
testing/mozharness/configs/multi_locale/mozilla-release_android.json
testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json
testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json
testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json
testing/mozharness/configs/multi_locale/release_mozilla-esr_android-armv6.json
testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json
testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json
testing/mozharness/configs/multi_locale/release_mozilla-release_android.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-esr_android-armv6.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json
testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json
testing/mozharness/configs/multi_locale/standalone_mozilla-central.py
testing/mozharness/configs/partner_repacks/release_mozilla-release_android.py
testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_android.py
testing/mozharness/configs/releases/bouncer_fennec.py
testing/mozharness/configs/releases/bouncer_firefox_beta.py
testing/mozharness/configs/releases/bouncer_firefox_esr.py
testing/mozharness/configs/releases/bouncer_firefox_release.py
testing/mozharness/configs/releases/bouncer_thunderbird.py
testing/mozharness/configs/selfserve/production.py
testing/mozharness/configs/selfserve/staging.py
testing/mozharness/configs/servo/mac.py
testing/mozharness/configs/single_locale/ash.py
testing/mozharness/configs/single_locale/linux.py
testing/mozharness/configs/single_locale/linux64.py
testing/mozharness/configs/single_locale/macosx64.py
testing/mozharness/configs/single_locale/mozilla-aurora_android-api-11.py
testing/mozharness/configs/single_locale/mozilla-aurora_android-api-9.py
testing/mozharness/configs/single_locale/mozilla-aurora_android.py
testing/mozharness/configs/single_locale/mozilla-central.py
testing/mozharness/configs/single_locale/mozilla-central_android-api-11.py
testing/mozharness/configs/single_locale/mozilla-central_android-api-9.py
testing/mozharness/configs/single_locale/mozilla-central_android.py
testing/mozharness/configs/single_locale/production.py
testing/mozharness/configs/single_locale/release_mozilla-beta_android.py
testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_11.py
testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_9.py
testing/mozharness/configs/single_locale/release_mozilla-release_android.py
testing/mozharness/configs/single_locale/staging.py
testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android.py
testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_11.py
testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_9.py
testing/mozharness/configs/single_locale/staging_release_mozilla-release_android.py
testing/mozharness/configs/single_locale/win32.py
testing/mozharness/configs/single_locale/win64.py
testing/mozharness/configs/talos/linux_config.py
testing/mozharness/configs/talos/mac_config.py
testing/mozharness/configs/talos/windows_config.py
testing/mozharness/configs/test/example_config1.json
testing/mozharness/configs/test/example_config2.py
testing/mozharness/configs/test/test.illegal_suffix
testing/mozharness/configs/test/test.json
testing/mozharness/configs/test/test.py
testing/mozharness/configs/test/test_malformed.json
testing/mozharness/configs/test/test_malformed.py
testing/mozharness/configs/test/test_optional.py
testing/mozharness/configs/test/test_override.py
testing/mozharness/configs/test/test_override2.py
testing/mozharness/configs/unittests/linux_unittest.py
testing/mozharness/configs/unittests/mac_unittest.py
testing/mozharness/configs/unittests/thunderbird_extra.py
testing/mozharness/configs/unittests/win_unittest.py
testing/mozharness/configs/users/aki/gaia_json.py
testing/mozharness/configs/users/sfink/mock.py
testing/mozharness/configs/users/sfink/spidermonkey.py
testing/mozharness/configs/vcs_sync/beagle.py
testing/mozharness/configs/vcs_sync/build-repos.py
testing/mozharness/configs/vcs_sync/gecko-git.py
testing/mozharness/configs/vcs_sync/l10n.py
testing/mozharness/configs/vcs_sync/project-branches.py
testing/mozharness/configs/vcs_sync/staging_build-repos.py
testing/mozharness/configs/vcs_sync/staging_l10n.py
testing/mozharness/configs/web_platform_tests/prod_config.py
testing/mozharness/configs/web_platform_tests/prod_config_windows.py
testing/mozharness/configs/web_platform_tests/test_config.py
testing/mozharness/configs/web_platform_tests/test_config_windows.py
testing/mozharness/docs/Makefile
testing/mozharness/docs/android_emulator_build.rst
testing/mozharness/docs/android_emulator_unittest.rst
testing/mozharness/docs/android_panda.rst
testing/mozharness/docs/android_panda_talos.rst
testing/mozharness/docs/b2g_build.rst
testing/mozharness/docs/b2g_bumper.rst
testing/mozharness/docs/b2g_desktop_multilocale.rst
testing/mozharness/docs/b2g_desktop_unittest.rst
testing/mozharness/docs/b2g_emulator_unittest.rst
testing/mozharness/docs/bouncer_submitter.rst
testing/mozharness/docs/bump_gaia_json.rst
testing/mozharness/docs/conf.py
testing/mozharness/docs/configtest.rst
testing/mozharness/docs/desktop_l10n.rst
testing/mozharness/docs/desktop_unittest.rst
testing/mozharness/docs/fx_desktop_build.rst
testing/mozharness/docs/gaia_build_integration.rst
testing/mozharness/docs/gaia_integration.rst
testing/mozharness/docs/gaia_unit.rst
testing/mozharness/docs/index.rst
testing/mozharness/docs/marionette.rst
testing/mozharness/docs/mobile_l10n.rst
testing/mozharness/docs/mobile_partner_repack.rst
testing/mozharness/docs/modules.rst
testing/mozharness/docs/mozharness.base.rst
testing/mozharness/docs/mozharness.base.vcs.rst
testing/mozharness/docs/mozharness.mozilla.building.rst
testing/mozharness/docs/mozharness.mozilla.l10n.rst
testing/mozharness/docs/mozharness.mozilla.rst
testing/mozharness/docs/mozharness.mozilla.testing.rst
testing/mozharness/docs/mozharness.rst
testing/mozharness/docs/multil10n.rst
testing/mozharness/docs/scripts.rst
testing/mozharness/docs/sourcetool.rst
testing/mozharness/docs/spidermonkey_build.rst
testing/mozharness/docs/talos_script.rst
testing/mozharness/docs/web_platform_tests.rst
testing/mozharness/examples/action_config_script.py
testing/mozharness/examples/silent_script.py
testing/mozharness/examples/venv.py
testing/mozharness/examples/verbose_script.py
testing/mozharness/external_tools/__init__.py
testing/mozharness/external_tools/clobberer.py
testing/mozharness/external_tools/count_and_reboot.py
testing/mozharness/external_tools/detect_repo.py
testing/mozharness/external_tools/download_file.py
testing/mozharness/external_tools/git-ssh-wrapper.sh
testing/mozharness/external_tools/mouse_and_screen_resolution.py
testing/mozharness/external_tools/purge_builds.py
testing/mozharness/mozfile/__init__.py
testing/mozharness/mozfile/mozfile.py
testing/mozharness/mozharness/__init__.py
testing/mozharness/mozharness/base/__init__.py
testing/mozharness/mozharness/base/config.py
testing/mozharness/mozharness/base/diskutils.py
testing/mozharness/mozharness/base/errors.py
testing/mozharness/mozharness/base/log.py
testing/mozharness/mozharness/base/parallel.py
testing/mozharness/mozharness/base/python.py
testing/mozharness/mozharness/base/script.py
testing/mozharness/mozharness/base/signing.py
testing/mozharness/mozharness/base/transfer.py
testing/mozharness/mozharness/base/vcs/__init__.py
testing/mozharness/mozharness/base/vcs/gittool.py
testing/mozharness/mozharness/base/vcs/hgtool.py
testing/mozharness/mozharness/base/vcs/mercurial.py
testing/mozharness/mozharness/base/vcs/tcvcs.py
testing/mozharness/mozharness/base/vcs/vcsbase.py
testing/mozharness/mozharness/base/vcs/vcssync.py
testing/mozharness/mozharness/lib/__init__.py
testing/mozharness/mozharness/lib/python/__init__.py
testing/mozharness/mozharness/lib/python/authentication.py
testing/mozharness/mozharness/mozilla/__init__.py
testing/mozharness/mozharness/mozilla/blob_upload.py
testing/mozharness/mozharness/mozilla/bouncer/__init__.py
testing/mozharness/mozharness/mozilla/bouncer/submitter.py
testing/mozharness/mozharness/mozilla/buildbot.py
testing/mozharness/mozharness/mozilla/building/__init__.py
testing/mozharness/mozharness/mozilla/building/buildb2gbase.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/mozharness/mozharness/mozilla/building/hazards.py
testing/mozharness/mozharness/mozilla/gaia.py
testing/mozharness/mozharness/mozilla/googleplay.py
testing/mozharness/mozharness/mozilla/l10n/__init__.py
testing/mozharness/mozharness/mozilla/l10n/locales.py
testing/mozharness/mozharness/mozilla/l10n/multi_locale_build.py
testing/mozharness/mozharness/mozilla/mapper.py
testing/mozharness/mozharness/mozilla/mar.py
testing/mozharness/mozharness/mozilla/mock.py
testing/mozharness/mozharness/mozilla/mozbase.py
testing/mozharness/mozharness/mozilla/proxxy.py
testing/mozharness/mozharness/mozilla/purge.py
testing/mozharness/mozharness/mozilla/release.py
testing/mozharness/mozharness/mozilla/repo_manifest.py
testing/mozharness/mozharness/mozilla/selfserve.py
testing/mozharness/mozharness/mozilla/signing.py
testing/mozharness/mozharness/mozilla/structuredlog.py
testing/mozharness/mozharness/mozilla/taskcluster_helper.py
testing/mozharness/mozharness/mozilla/testing/__init__.py
testing/mozharness/mozharness/mozilla/testing/device.py
testing/mozharness/mozharness/mozilla/testing/errors.py
testing/mozharness/mozharness/mozilla/testing/gaia_test.py
testing/mozharness/mozharness/mozilla/testing/mozpool.py
testing/mozharness/mozharness/mozilla/testing/talos.py
testing/mozharness/mozharness/mozilla/testing/testbase.py
testing/mozharness/mozharness/mozilla/testing/unittest.py
testing/mozharness/mozharness/mozilla/tooltool.py
testing/mozharness/mozharness/mozilla/updates/__init__.py
testing/mozharness/mozharness/mozilla/updates/balrog.py
testing/mozharness/mozinfo/__init__.py
testing/mozharness/mozinfo/mozinfo.py
testing/mozharness/mozprocess/__init__.py
testing/mozharness/mozprocess/pid.py
testing/mozharness/mozprocess/processhandler.py
testing/mozharness/mozprocess/qijo.py
testing/mozharness/mozprocess/winprocess.py
testing/mozharness/mozprocess/wpk.py
testing/mozharness/requirements.txt
testing/mozharness/scripts/android_emulator_build.py
testing/mozharness/scripts/android_emulator_unittest.py
testing/mozharness/scripts/android_panda.py
testing/mozharness/scripts/android_panda_talos.py
testing/mozharness/scripts/b2g_build.py
testing/mozharness/scripts/b2g_bumper.py
testing/mozharness/scripts/b2g_desktop_multilocale.py
testing/mozharness/scripts/b2g_desktop_unittest.py
testing/mozharness/scripts/b2g_emulator_unittest.py
testing/mozharness/scripts/bouncer_submitter.py
testing/mozharness/scripts/configtest.py
testing/mozharness/scripts/desktop_l10n.py
testing/mozharness/scripts/desktop_unittest.py
testing/mozharness/scripts/fx_desktop_build.py
testing/mozharness/scripts/gaia_build_integration.py
testing/mozharness/scripts/gaia_build_unit.py
testing/mozharness/scripts/gaia_integration.py
testing/mozharness/scripts/gaia_linter.py
testing/mozharness/scripts/gaia_unit.py
testing/mozharness/scripts/hazard_build.py
testing/mozharness/scripts/luciddream_unittest.py
testing/mozharness/scripts/marionette.py
testing/mozharness/scripts/merge_day/b2g_branch_repos.py
testing/mozharness/scripts/merge_day/b2g_tag.py
testing/mozharness/scripts/merge_day/gecko_migration.py
testing/mozharness/scripts/mobile_l10n.py
testing/mozharness/scripts/mobile_partner_repack.py
testing/mozharness/scripts/mulet_unittest.py
testing/mozharness/scripts/multil10n.py
testing/mozharness/scripts/openh264_build.py
testing/mozharness/scripts/push_apk.py
testing/mozharness/scripts/sourcetool.py
testing/mozharness/scripts/spidermonkey/build.b2g
testing/mozharness/scripts/spidermonkey/build.browser
testing/mozharness/scripts/spidermonkey/build.shell
testing/mozharness/scripts/spidermonkey_build.py
testing/mozharness/scripts/talos_script.py
testing/mozharness/scripts/update_apk_description.py
testing/mozharness/scripts/vcs-sync/initial_beagle.py
testing/mozharness/scripts/vcs-sync/vcs_sync.py
testing/mozharness/scripts/web_platform_tests.py
testing/mozharness/setup.cfg
testing/mozharness/setup.py
testing/mozharness/test/README
testing/mozharness/test/helper_files/.hgrc
testing/mozharness/test/helper_files/.noserc
testing/mozharness/test/helper_files/init_hgrepo.sh
testing/mozharness/test/helper_files/locales.json
testing/mozharness/test/helper_files/locales.txt
testing/mozharness/test/hgrc
testing/mozharness/test/pip-freeze.example.txt
testing/mozharness/test/test_base_config.py
testing/mozharness/test/test_base_diskutils.py
testing/mozharness/test/test_base_log.py
testing/mozharness/test/test_base_parallel.py
testing/mozharness/test/test_base_python.py
testing/mozharness/test/test_base_script.py
testing/mozharness/test/test_base_transfer.py
testing/mozharness/test/test_base_vcs_mercurial.py
testing/mozharness/test/test_l10n_locales.py
testing/mozharness/test/test_mozilla_blob_upload.py
testing/mozharness/test/test_mozilla_buildbot.py
testing/mozharness/tox.ini
testing/mozharness/unit.sh
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/LICENSE
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
--- a/testing/mozharness/README.txt
+++ b/testing/mozharness/README.txt
@@ -1,1 +1,9 @@
-mozharness.json is a manifest file that locks or "pins" mozharness to a repository and a revision. It is currently tracking the mozilla-b2g37_v2_2 branch rather than default.
+the contents of this dir (testing/mozharness) represent two parts
+
+1) the old way: mozharness.json is a manifest file that locks or "pins" mozharness to a repository and a revision.
+
+2) the new way: an in-gecko-tree copy of mozharness.
+    * hgmo/build/mozharness is still live and the defacto read/write repository
+    * continuous integration jobs are based on this copy
+    * As we transition to dropping support for hg.m.o/build/mozharness, this copy will continue to be synced
+    * this copy is currently based on: http://hg.mozilla.org/build/mozharness/rev/45206195f4ed (mozilla-b2g37_v2_2)
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/android_panda_releng.py
@@ -0,0 +1,107 @@
+# This is a template config file for panda android tests on production.
+import socket
+import os
+
+MINIDUMP_STACKWALK_PATH = "/builds/minidump_stackwalk"
+
+config = {
+    # Values for the foopies
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+    },
+    "run_file_names": {
+        "mochitest": "runtestsremote.py",
+        "reftest": "remotereftest.py",
+        "crashtest": "remotereftest.py",
+        "jsreftest": "remotereftest.py",
+        "robocop": "runtestsremote.py",
+        "instrumentation": "runinstrumentation.py",
+        "xpcshell": "remotexpcshelltests.py",
+        "jittest": "jit_test.py",
+        "cppunittest": "remotecppunittests.py"
+    },
+    "hostutils_url":  "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+    "verify_path":  "/builds/sut_tools/verify.py",
+    "install_app_path":  "/builds/sut_tools/installApp.py",
+    "logcat_path":  "/builds/sut_tools/logcat.py",
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/android_panda_config.py",
+    "all_mochitest_suites": {
+        "mochitest-1": ["--total-chunks=8", "--this-chunk=1"],
+        "mochitest-2": ["--total-chunks=8", "--this-chunk=2"],
+        "mochitest-3": ["--total-chunks=8", "--this-chunk=3"],
+        "mochitest-4": ["--total-chunks=8", "--this-chunk=4"],
+        "mochitest-5": ["--total-chunks=8", "--this-chunk=5"],
+        "mochitest-6": ["--total-chunks=8", "--this-chunk=6"],
+        "mochitest-7": ["--total-chunks=8", "--this-chunk=7"],
+        "mochitest-8": ["--total-chunks=8", "--this-chunk=8"],
+        "mochitest-gl": ["--subsuite=webgl"],
+    },
+    "all_reftest_suites": {
+        "reftest-1": ["--total-chunks=8", "--this-chunk=1"],
+        "reftest-2": ["--total-chunks=8", "--this-chunk=2"],
+        "reftest-3": ["--total-chunks=8", "--this-chunk=3"],
+        "reftest-4": ["--total-chunks=8", "--this-chunk=4"],
+        "reftest-5": ["--total-chunks=8", "--this-chunk=5"],
+        "reftest-6": ["--total-chunks=8", "--this-chunk=6"],
+        "reftest-7": ["--total-chunks=8", "--this-chunk=7"],
+        "reftest-8": ["--total-chunks=8", "--this-chunk=8"],
+    },
+    "all_crashtest_suites": {
+        "crashtest": []
+    },
+    "all_jsreftest_suites": {
+        "jsreftest-1": ["--total-chunks=3", "--this-chunk=1"],
+        "jsreftest-2": ["--total-chunks=3", "--this-chunk=2"],
+        "jsreftest-3": ["--total-chunks=3", "--this-chunk=3"],
+    },
+    "all_robocop_suites": {
+        "robocop-1": ["--total-chunks=10", "--this-chunk=1"],
+        "robocop-2": ["--total-chunks=10", "--this-chunk=2"],
+        "robocop-3": ["--total-chunks=10", "--this-chunk=3"],
+        "robocop-4": ["--total-chunks=10", "--this-chunk=4"],
+        "robocop-5": ["--total-chunks=10", "--this-chunk=5"],
+        "robocop-6": ["--total-chunks=10", "--this-chunk=6"],
+        "robocop-7": ["--total-chunks=10", "--this-chunk=7"],
+        "robocop-8": ["--total-chunks=10", "--this-chunk=8"],
+        "robocop-9": ["--total-chunks=10", "--this-chunk=9"],
+        "robocop-10": ["--total-chunks=10", "--this-chunk=10"],
+    },
+    "all_instrumentation_suites": {
+        "browser": ["--suite", "browser"],
+        "background": ["--suite", "background"],
+    },
+    "all_xpcshell_suites": {
+        "xpcshell": []
+    },
+    "all_jittest_suites": {
+        "jittest": []
+    },
+    "all_cppunittest_suites": {
+        "cppunittest": ['cppunittests']
+    },
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+    "buildbot_json_path": "buildprops.json",
+    "mobile_imaging_format": "http://mobile-imaging",
+    "mozpool_assignee": socket.gethostname(),
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'request-device',
+        'run-test',
+        'close-request',
+    ],
+    "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH,
+    "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/android_panda_talos_releng.py
@@ -0,0 +1,76 @@
+# This is a template config file for panda android tests on production.
+import socket
+import os
+
+config = {
+    # Values for the foopies
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+    },
+    "run_file_names": {
+        "preflight_talos": "remotePerfConfigurator.py",
+        "talos": "run_tests.py",
+    },
+    "retry_url":  "http://talos-bundles.pvt.build.mozilla.org/zips/retry.zip",
+    "verify_path":  "/builds/sut_tools/verify.py",
+    "install_app_path":  "/builds/sut_tools/installApp.py",
+    "talos_from_code_url": "https://hg.mozilla.org/%s/raw-file/%s/testing/talos/talos_from_code.py",
+    "talos_json_url": "https://hg.mozilla.org/%s/raw-file/%s/testing/talos/talos.json",
+    "datazilla_urls": ["https://datazilla.mozilla.org/talos"],
+    "datazilla_authfile": os.path.join(os.getcwd(), "oauth.txt"),
+    #remotePerfConfigurator.py options
+    "preflight_talos_options": [
+        "-v", "-e", "%(app_name)s",
+        "-t", "%(hostname)s",
+        "--branchName=%(talos_branch)s",
+        "--resultsServer=graphs.mozilla.org",
+        "--resultsLink=/server/collect.cgi",
+        "--noChrome",
+        "--symbolsPath=../symbols",
+        "--remoteDevice=%(device_ip)s",
+        "--sampleConfig=remote.config",
+        "--output=local.yml",
+        "--webServer=talos-remote.pvt.build.mozilla.org",
+        "--browserWait=60"
+    ],
+    #run_tests.py options
+    "talos_options": [
+        "--noisy",
+        "local.yml"
+    ],
+    "all_talos_suites": {
+        "remote-troboprovider":  ["--activeTests=tprovider", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+        "remote-ts":  ["--activeTests=ts", "--mozAfterPaint", "--noChrome"],
+        #currently disabled
+        "remote-tsvgx":  ["--activeTests=tsvgx", "--noChrome", '--tppagecycles', '10'],
+        "remote-tcanvasmark":  ["--activeTests=tcanvasmark", "--noChrome"],
+        "remote-tsspider":  ["--activeTests=tsspider", "--noChrome"],
+        #end currently disabled
+        "remote-trobopan":  ["--activeTests=trobopan", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+        "remote-tsvg":  ["--activeTests=tsvg", "--noChrome"],
+        "remote-tp4m_nochrome":  ["--activeTests=tp4m", "--noChrome", "--rss"],
+        "remote-trobocheck2":  ["--activeTests=tcheck2", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+        "remote-tspaint": ["--activeTests=ts_paint", "--mozAfterPaint"],
+    },
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "buildbot_json_path": "buildprops.json",
+    "mobile_imaging_format": "http://mobile-imaging",
+    "mozpool_assignee": socket.gethostname(),
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'request-device',
+        'run-test',
+        'close-request',
+    ],
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm.py
@@ -0,0 +1,315 @@
+import os
+
+config = {
+    "buildbot_json_path": "buildprops.json",
+    "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+    "robocop_package_name": "org.mozilla.roboexample.test",
+    "device_ip": "127.0.0.1",
+    "default_sut_port1": "20701",
+    "default_sut_port2": "20700", # does not prompt for commands
+    "tooltool_manifest_path": "testing/config/tooltool-manifests/androidarm/releng.manifest",
+    "tooltool_cache": "/builds/tooltool_cache",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "emulator_manifest": """
+        [
+        {
+        "size": 193383673,
+        "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+        "algorithm": "sha512",
+        "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+        "unpack": "True"
+        }
+        ] """,
+    "emulator_process_name": "emulator64-arm",
+    "emulator_extra_args": "-debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket -qemu -m 1024 -cpu cortex-a9",
+    "device_manager": "sut",
+    "exes": {
+        'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+    "env": {
+        "DISPLAY": ":0.0",
+        "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk18/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+        "MINIDUMP_SAVEPATH": "%(abs_work_dir)s/../minidumps"
+    },
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'setup-avds',
+        'start-emulators',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+        'stop-emulators',
+    ],
+    "emulators": [
+        {
+            "name": "test-1",
+            "device_id": "emulator-5554",
+            "http_port": "8854", # starting http port to use for the mochitest server
+            "ssl_port": "4454", # starting ssl port to use for the server
+            "emulator_port": 5554,
+            "sut_port1": 20701,
+            "sut_port2": 20700
+        },
+        {
+            "name": "test-2",
+            "device_id": "emulator-5556",
+            "http_port": "8856", # starting http port to use for the mochitest server
+            "ssl_port": "4456", # starting ssl port to use for the server
+            "emulator_port": 5556,
+            "sut_port1": 20703,
+            "sut_port2": 20702
+        },
+        {
+            "name": "test-3",
+            "device_id": "emulator-5558",
+            "http_port": "8858", # starting http port to use for the mochitest server
+            "ssl_port": "4458", # starting ssl port to use for the server
+            "emulator_port": 5558,
+            "sut_port1": 20705,
+            "sut_port2": 20704
+        },
+        {
+            "name": "test-4",
+            "device_id": "emulator-5560",
+            "http_port": "8860", # starting http port to use for the mochitest server
+            "ssl_port": "4460", # starting ssl port to use for the server
+            "emulator_port": 5560,
+            "sut_port1": 20707,
+            "sut_port2": 20706
+        }
+    ],
+    "test_suite_definitions": {
+        "jsreftest-1": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "jsreftest-2": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "jsreftest-3": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "jsreftest-4": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=4"],
+        },
+        "jsreftest-5": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=5"],
+        },
+        "jsreftest-6": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=6"],
+        },
+        "mochitest-1": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=1"],
+        },
+        "mochitest-2": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=2"],
+        },
+        "mochitest-3": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=3"],
+        },
+        "mochitest-4": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=4"],
+        },
+        "mochitest-5": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=5"],
+        },
+        "mochitest-6": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=6"],
+        },
+        "mochitest-7": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=7"],
+        },
+        "mochitest-8": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=8"],
+        },
+        "mochitest-9": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=9"],
+        },
+        "mochitest-10": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=10"],
+        },
+        "mochitest-11": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=11"],
+        },
+        "mochitest-12": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=12"],
+        },
+        "mochitest-13": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=13"],
+        },
+        "mochitest-14": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=14"],
+        },
+        "mochitest-15": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=15"],
+        },
+        "mochitest-16": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=16"],
+        },
+        "mochitest-gl-1": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "mochitest-gl-2": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "mochitest-gl-3": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "mochitest-gl-4": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=4"],
+        },
+        "reftest-1": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=1",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-2": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=2",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-3": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=3",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-4": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=4",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-5": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=5",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-6": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=6",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-7": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=7",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-8": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=8",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-9": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=9",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-10": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=10",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-11": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=11",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-12": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=12",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-13": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=13",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-14": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=14",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-15": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=15",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-16": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=16",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "crashtest-1": {
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "crashtest-2": {
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "xpcshell-1": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=1"],
+        },
+        "xpcshell-2": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=2"],
+        },
+        "xpcshell-3": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=3"],
+        },
+        "robocop-1": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "robocop-2": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "robocop-3": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "robocop-4": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=4"],
+        },
+    }, # end of "test_definitions"
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/android_arm_config.py",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_4_3.py
@@ -0,0 +1,294 @@
+import os
+
+config = {
+    "buildbot_json_path": "buildprops.json",
+    "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+    "robocop_package_name": "org.mozilla.roboexample.test",
+    "tooltool_manifest_path": "testing/config/tooltool-manifests/androidarm_4_3/releng.manifest",
+    "tooltool_cache": "/builds/tooltool_cache",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    ".avds_dir": "/home/cltbld/.android",
+    "emulator_manifest": """
+        [
+        {
+        "size": 140097024,
+        "digest": "51781032335c09103e8509b1a558bf22a7119392cf1ea301c49c01bdf21ff0ceb37d260bc1c322cd9b903252429fb01830fc27e4632be30cd345c95bf4b1a39b",
+        "algorithm": "sha512",
+        "filename": "android-sdk_r24.0.2-linux.tgz",
+        "unpack": "True"
+        }
+        ] """,
+    "tools_manifest": """
+        [
+        {
+        "size": 193383673,
+        "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+        "algorithm": "sha512",
+        "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+        "unpack": "True"
+        }
+        ] """,
+    "emulator_process_name": "emulator64-arm",
+    "emulator_extra_args": "-debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket",
+    "device_manager": "adb",
+    "exes": {
+        'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+    "env": {
+        "DISPLAY": ":0.0",
+        "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk-linux/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+        "MINIDUMP_SAVEPATH": "%(abs_work_dir)s/../minidumps"
+    },
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'setup-avds',
+        'start-emulators',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+        'stop-emulators',
+    ],
+    "emulators": [
+        {
+            "name": "test-1",
+            "device_id": "emulator-5554",
+            "http_port": "8854", # starting http port to use for the mochitest server
+            "ssl_port": "4454", # starting ssl port to use for the server
+            "emulator_port": 5554,
+        },
+    ],
+    "test_suite_definitions": {
+        "jsreftest-1": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "jsreftest-2": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "jsreftest-3": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "jsreftest-4": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=4"],
+        },
+        "jsreftest-5": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=5"],
+        },
+        "jsreftest-6": {
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=6"],
+        },
+        "mochitest-1": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=1"],
+        },
+        "mochitest-2": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=2"],
+        },
+        "mochitest-3": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=3"],
+        },
+        "mochitest-4": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=4"],
+        },
+        "mochitest-5": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=5"],
+        },
+        "mochitest-6": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=6"],
+        },
+        "mochitest-7": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=7"],
+        },
+        "mochitest-8": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=8"],
+        },
+        "mochitest-9": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=9"],
+        },
+        "mochitest-10": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=10"],
+        },
+        "mochitest-11": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=11"],
+        },
+        "mochitest-12": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=12"],
+        },
+        "mochitest-13": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=13"],
+        },
+        "mochitest-14": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=14"],
+        },
+        "mochitest-15": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=15"],
+        },
+        "mochitest-16": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=16"],
+        },
+        "mochitest-gl-1": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "mochitest-gl-2": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "mochitest-gl-3": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "mochitest-gl-4": {
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=4"],
+        },
+        "reftest-1": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=1",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-2": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=2",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-3": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=3",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-4": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=4",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-5": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=5",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-6": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=6",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-7": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=7",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-8": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=8",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-9": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=9",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-10": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=10",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-11": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=11",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-12": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=12",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-13": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=13",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-14": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=14",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-15": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=15",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-16": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=16", "--this-chunk=16",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "crashtest-1": {
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "crashtest-2": {
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "xpcshell-1": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=1"],
+        },
+        "xpcshell-2": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=2"],
+        },
+        "xpcshell-3": {
+            "category": "xpcshell",
+            "extra_args": ["--total-chunks=3", "--this-chunk=3"],
+        },
+        "robocop-1": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=1"],
+        },
+        "robocop-2": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=2"],
+        },
+        "robocop-3": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=3"],
+        },
+        "robocop-4": {
+            "category": "robocop",
+            "extra_args": ["--this-chunk=4"],
+        },
+    }, # end of "test_definitions"
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/android_arm_4_3_config.py",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_dev.py
@@ -0,0 +1,9 @@
+# This config contains dev values that will replace
+# the values specified in the production config
+# if specified like this (order matters):
+# --cfg android/androidarm.py
+# --cfg android/androidarm_dev.py
+import os
+config = {
+    "tooltool_cache_path": os.path.join(os.getenv("HOME"), "cache"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidx86.py
@@ -0,0 +1,136 @@
+import os
+
+config = {
+    "buildbot_json_path": "buildprops.json",
+    "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+    "robocop_package_name": "org.mozilla.roboexample.test",
+    "device_ip": "127.0.0.1",
+    "default_sut_port1": "20701",
+    "default_sut_port2": "20700", # does not prompt for commands
+    "tooltool_manifest_path": "testing/config/tooltool-manifests/androidx86/releng.manifest",
+    "tooltool_cache": "/builds/tooltool_cache",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "emulator_manifest": """
+        [
+        {
+        "size": 193383673,
+        "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+        "algorithm": "sha512",
+        "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+        "unpack": "True"
+        }
+        ] """,
+    "emulator_process_name": "emulator64-x86",
+    "emulator_extra_args": "-debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket -qemu -m 1024 -enable-kvm",
+    "device_manager": "sut",
+    "exes": {
+        'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+    "env": {
+        "DISPLAY": ":0.0",
+        "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk18/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+    },
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'setup-avds',
+        'start-emulators',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+        'stop-emulators',
+    ],
+    "emulators": [
+        {
+            "name": "test-1",
+            "device_id": "emulator-5554",
+            "http_port": "8854", # starting http port to use for the mochitest server
+            "ssl_port": "4454", # starting ssl port to use for the server
+            "emulator_port": 5554,
+            "sut_port1": 20701,
+            "sut_port2": 20700
+        },
+        {
+            "name": "test-2",
+            "device_id": "emulator-5556",
+            "http_port": "8856", # starting http port to use for the mochitest server
+            "ssl_port": "4456", # starting ssl port to use for the server
+            "emulator_port": 5556,
+            "sut_port1": 20703,
+            "sut_port2": 20702
+        },
+        {
+            "name": "test-3",
+            "device_id": "emulator-5558",
+            "http_port": "8858", # starting http port to use for the mochitest server
+            "ssl_port": "4458", # starting ssl port to use for the server
+            "emulator_port": 5558,
+            "sut_port1": 20705,
+            "sut_port2": 20704
+        },
+        {
+            "name": "test-4",
+            "device_id": "emulator-5560",
+            "http_port": "8860", # starting http port to use for the mochitest server
+            "ssl_port": "4460", # starting ssl port to use for the server
+            "emulator_port": 5560,
+            "sut_port1": 20707,
+            "sut_port2": 20706
+        }
+    ],
+    "test_suite_definitions": {
+        "jsreftest": {
+            "category": "reftest",
+            "extra_args": ["../jsreftest/tests/jstests.list",
+                "--extra-profile-file=jsreftest/tests/user.js"]
+        },
+        "mochitest-1": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=2", "--this-chunk=1"],
+        },
+        "mochitest-2": {
+            "category": "mochitest",
+            "extra_args": ["--total-chunks=2", "--this-chunk=2"],
+        },
+        "mochitest-gl": {
+            "category": "mochitest",
+            "extra_args": ["--subsuite=webgl"],
+        },
+        "reftest-1": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=3", "--this-chunk=1",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-2": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=3", "--this-chunk=2",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "reftest-3": {
+            "category": "reftest",
+            "extra_args": ["--total-chunks=3", "--this-chunk=3",
+                "tests/layout/reftests/reftest.list"]
+        },
+        "crashtest": {
+            "category": "reftest",
+            "extra_args": ["tests/testing/crashtest/crashtests.list"]
+        },
+        "xpcshell": {
+            "category": "xpcshell",
+            # XXX --manifest is superceded by testing/config/mozharness/android_x86_config.py.
+            # Remove when Gecko 35 no longer in tbpl.
+            "extra_args": ["--manifest=tests/xpcshell_android.ini"]
+        },
+    }, # end of "test_definitions"
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/android_x86_config.py",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_automation_config.py
@@ -0,0 +1,46 @@
+# This is a template config file for b2g desktop unittest production.
+import os
+
+config = {
+    # mozharness options
+    "application": "b2g",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "tooltool_cache": "/builds/tooltool_cache",
+
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+    ],
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+
+    # testsuite options
+    "run_file_names": {
+        "mochitest": "runtestsb2g.py",
+        "reftest": "runreftestb2g.py",
+    },
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/b2g_desktop_config.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/emulator_automation_config.py
@@ -0,0 +1,53 @@
+# This is a template config file for b2g emulator unittest production.
+import os
+
+config = {
+    # mozharness options
+    "application": "b2g",
+    "busybox_url": "http://tooltool.pvt.build.mozilla.org/build/sha512/0748e900821820f1a42e2f1f3fa4d9002ef257c351b9e6b78e7de0ddd0202eace351f440372fbb1ae0b7e69e8361b036f6bd3362df99e67fc585082a311fc0df",
+    "xre_url": "http://tooltool.pvt.build.mozilla.org/build/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "tooltool_cache": "/builds/tooltool_cache",
+
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+    ],
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+
+    "run_file_names": {
+        "jsreftest": "runreftestb2g.py",
+        "mochitest": "runtestsb2g.py",
+        "mochitest-chrome": "runtestsb2g.py",
+        "reftest": "runreftestb2g.py",
+        "crashtest": "runreftestb2g.py",
+        "xpcshell": "runtestsb2g.py",
+        "cppunittest": "remotecppunittests.py"
+    },
+    # test harness options are located in the gecko tree
+    "in_tree_config": "config/mozharness/b2g_emulator_config.py",
+    "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/emulator_test_config.py
@@ -0,0 +1,21 @@
+# This is a template config file for b2g emulator unittest testing
+
+config = {
+    # mozharness script options
+    "application": "b2g",
+    "test_suite": "xpcshell",                               # reftest, mochitest or xpcshell
+
+    "emulator_url": "http://127.0.1.1/b2g/emulator.zip",    # url to emulator zip file
+    "installer_url": "http://127.0.1.1/b2g/b2g.tar.gz",     # url to gecko build
+    "xre_url": "http://127.0.1.1/b2g/xpcshell.zip",         # url to xpcshell zip file
+    "test_url": "http://127.0.1.1/b2g/tests.zip",           # url to tests.zip
+    "busybox_url": "http://127.0.1.1/b2g/busybox",          # url to busybox binary
+
+    # testsuite options
+    #"adb_path": "path/to/adb",           # defaults - os.environ['ADB_PATH']
+    #"test_manifest": "path/to/manifest", # defaults - mochitest: "b2g.json"
+                                          #              reftest: "tests/layout/reftests/reftest.list"
+                                          #             xpcshell: "tests/xpcshell.ini"
+    "total_chunks": 1,
+    "this_chunk": 1,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_integration_config.py
@@ -0,0 +1,43 @@
+# This is a template config file for b2g emulator unittest testing
+import platform
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+    # mozharness script options
+    "xre_url": xre_url,
+
+    # mozharness configuration
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'pull',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+    ],
+    "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_try.py
@@ -0,0 +1,4 @@
+config = {
+    "gaia_json_path": "{repo_path}/raw-file/{revision}/gaia.json",
+    "bypass_download_cache": True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_unit_production_config.py
@@ -0,0 +1,48 @@
+# This is a template config file for b2g emulator unittest testing
+import platform
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+    # mozharness script options
+    "xre_url": xre_url,
+
+    # mozharness configuration
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'pull',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+    ],
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+    "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_unit_test_config.py
@@ -0,0 +1,7 @@
+# This is a template config file for b2g emulator unittest testing
+
+config = {
+    # mozharness script options
+    "installer_url": "https://ftp-ssl.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-linux64_gecko/1365627906/b2g-23.0a1.multi.linux-x86_64.tar.bz2",
+    "xre_url": "https://ftp-ssl.mozilla.org/pub/mozilla.org/xulrunner/nightly/2012/09/2012-09-20-03-05-43-mozilla-central/xulrunner-18.0a1.en-US.linux-x86_64.tar.bz2"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/generic_config.py
@@ -0,0 +1,28 @@
+# This is a config with generic releng related values 
+import os
+
+config = {
+    # mozharness options
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/mulet_config.py
@@ -0,0 +1,13 @@
+# Call --cfg b2g/generic_config.py before this config
+config = {
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'pull',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-tests',
+    ],
+    "in_tree_config": "config/mozharness/linux_mulet_config.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-emulator.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds2.dmz.scl3.mozilla.com",
+            "upload_remote_path": "/pub/mozilla.org/b2g/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pub/mozilla.org/b2g/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pub/mozilla.org/b2g/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pub/mozilla.org/b2g/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": [],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+        "buildbot": "/tools/buildbot/bin/buildbot",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+    },
+    "purge_minsize": 20,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-fota-eng.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+            "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": [],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+        "python": "/tools/python27/bin/python2.7",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+        "target_suffix": "-eng",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "B2G_UPDATER": "1",
+        "B2G_SYSTEM_APPS": "1",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+        "B2G_UPDATE_CHANNEL": "default",
+    },
+    "purge_minsize": 15,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "variant": "eng",
+    "target_suffix": "-eng",
+    "update_type": "fota",
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-fota-updates.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+        'submit-to-balrog',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+            "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+    },
+    "purge_minsize": 15,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+    "update_type": "fota",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-otoro-eng.py
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+            "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": [],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+        "python": "/tools/python27/bin/python2.7",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+        "target_suffix": "-eng",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "B2G_UPDATER": "1",
+        "B2G_SYSTEM_APPS": "1",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+        "B2G_UPDATE_CHANNEL": "default",
+    },
+    "purge_minsize": 15,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "variant": "eng",
+    "target_suffix": "-eng",
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-otoro.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+            "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+    },
+    "purge_minsize": 15,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-private-updates.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'make-updates',
+        'prep-upload',
+        'upload',
+        'make-socorro-json',
+        'upload-source-manifest',
+        'submit-to-balrog',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+            "ssh_user": "b2gbld",
+            "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+            "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+            "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+            "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+            "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+            "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+        },
+        "public": {
+            "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+            "ssh_user": "ffxbld",
+            "upload_remote_host": "stage.mozilla.org",
+            "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+            "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+    },
+    "manifest": {
+        "upload_remote_host": "stage.mozilla.org",
+        "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+        "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+        "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+        "ssh_user": "b2gbld",
+        "branches": {
+            'mozilla-b2g30_v1_4': '1.4.0',
+            'mozilla-b2g32_v2_0': '2.0.0',
+            'mozilla-b2g34_v2_1': '2.1.0',
+            'mozilla-b2g37_v2_2': '2.2.0',
+            'mozilla-central': '3.0.0',
+        },
+        "translate_hg_to_git": True,
+        "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+        "SYMBOL_SERVER_USER": "b2gbld",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+        "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+    },
+    "purge_minsize": 15,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-try.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+import os
+config = {
+    "default_actions": [
+        'clobber',
+        'checkout-sources',
+        'get-blobs',
+        'update-source-manifest',
+        'build',
+        'build-symbols',
+        'prep-upload',
+        'upload',
+    ],
+    "upload": {
+        "default": {
+            "ssh_key": os.path.expanduser("~/.ssh/b2gtry_dsa"),
+            "ssh_user": "b2gtry",
+            "upload_remote_host": "pvtbuilds2.dmz.scl3.mozilla.com",
+            "upload_remote_path": "/pub/mozilla.org/b2g/try-builds/%(user)s-%(revision)s/%(branch)s-%(target)s",
+            "upload_dep_target_exclusions": [],
+        },
+    },
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "gittool_share_base": "/builds/git-shared/git",
+    "gittool_base_mirror_urls": [],
+    "hgtool_share_base": "/builds/hg-shared",
+    "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+    "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+    "exes": {
+        "tooltool.py": "/tools/tooltool.py",
+        "buildbot": "/tools/buildbot/bin/buildbot",
+    },
+    "env": {
+        "CCACHE_DIR": "/builds/ccache",
+        "CCACHE_COMPRESS": "1",
+        "CCACHE_UMASK": "002",
+        "GAIA_OPTIMIZE": "1",
+        "WGET_OPTS": "-c -q",
+        "PATH": "/tools/python27/bin:%(PATH)s",
+    },
+    "purge_minsize": 20,
+    #"clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+    #"clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "is_automation": True,
+    "force_clobber": True,
+    "repo_mirror_dir": "/builds/git-shared/repo",
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-emulator.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+config = {
+    "default_vcs": "tc-vcs",
+    "default_actions": [
+        'checkout-sources',
+        'build',
+        'build-symbols',
+    ],
+    "env": {
+        "GAIA_OPTIMIZE": "1",
+        "WGET_OPTS": "-c -q"
+    },
+    "is_automation": True,
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-phone.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+config = {
+    "default_vcs": "tc-vcs",
+    "default_actions": [
+        'checkout-sources',
+        'build',
+        'build-symbols',
+        'prep-upload'
+    ],
+    "upload": {
+        "default": {
+            "upload_dep_target_exclusions": []
+        }
+    },
+    "env": {
+        "GAIA_OPTIMIZE": "1",
+        "WGET_OPTS": "-c -q"
+    },
+    "is_automation": True,
+    "repo_remote_mappings": {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/master.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/integration/b2g-inbound',
+    'gecko_push_url': 'ssh://hg.mozilla.org/integration/b2g-inbound',
+    'gecko_local_dir': 'b2g-inbound',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/master',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-central',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'master',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'dolphin': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-l': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'flame-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-5-l': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v1.4.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g30_v1_4',
+    'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g30_v1_4',
+    'gecko_local_dir': 'mozilla-b2g30_v1_4',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/v1.4',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-1_4',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'v1.4',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'dolphin': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.0.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g32_v2_0',
+    'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g32_v2_0',
+    'gecko_local_dir': 'mozilla-b2g32_v2_0',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/v2.0',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_0',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'v2.0',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'flame-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.1.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/',
+    'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g34_v2_1/',
+    'gecko_local_dir': 'mozilla-b2g34_v2_1',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/v2.1',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_1',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'v2.1',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'dolphin': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'flame-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.1s.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g34_v2_1s/',
+    'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g34_v2_1s/',
+    'gecko_local_dir': 'mozilla-b2g34_v2_1s',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/v2.1s',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_1s',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'v2.1s',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'dolphin': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'dolphin-512': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'flame-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.2.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+config = {
+    "exes": {
+        # Get around the https warnings
+        "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+        "hgtool.py": ["/usr/local/bin/hgtool.py"],
+        "gittool.py": ["/usr/local/bin/gittool.py"],
+    },
+    'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/',
+    'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g37_v2_2/',
+    'gecko_local_dir': 'mozilla-b2g37_v2_2',
+    'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+    'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+    'manifests_revision': 'origin/v2.2',
+
+    'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+    "ssh_key": "~/.ssh/ffxbld_rsa",
+    "ssh_user": "ffxbld",
+
+    'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+    'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_2',
+    'gaia_revision_file': 'b2g/config/gaia.json',
+    'gaia_max_revisions': 5,
+    # Which git branch this hg repo corresponds to
+    'gaia_git_branch': 'v2.2',
+    'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+    'gaia_mapper_project': 'gaia',
+    'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+    'devices': {
+        'dolphin': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-l': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-jb': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'emulator-ics': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        # Equivalent to emulator-ics - see bug 916134
+        # Remove once the above bug resolved
+        'emulator': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+            'manifest_file': 'emulator.xml',
+        },
+        'flame': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'flame-kk': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-4': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+        'nexus-5-l': {
+            'ignore_projects': ['gecko'],
+            'ignore_groups': ['darwin'],
+        },
+    },
+    'repo_remote_mappings': {
+        'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+        'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+        'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+        'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+        'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+        'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+        'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+        'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+        # Some mappings to ourself, we want to leave these as-is!
+        'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+        'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+        'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+        'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+        'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/balrog/production.py
@@ -0,0 +1,11 @@
+config = {
+    'balrog_api_root': 'https://aus4-admin.mozilla.org/api',
+    'balrog_usernames': {
+        'b2g': 'b2gbld',
+        'firefox': 'ffxbld',
+        'thunderbird': 'tbirdbld',
+        'mobile': 'ffxbld',
+        'Fennec': 'ffxbld',
+        'graphene': 'ffxbld',
+    }
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/balrog/staging.py
@@ -0,0 +1,11 @@
+config = {
+    'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+    'balrog_usernames': {
+        'b2g': 'stage-b2gbld',
+        'firefox': 'stage-ffxbld',
+        'thunderbird': 'stage-tbirdbld',
+        'mobile': 'stage-ffxbld',
+        'Fennec': 'stage-ffxbld',
+        'graphene': 'stage-ffxbld',
+    }
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -0,0 +1,130 @@
+# this is a dict of branch specific keys/values. As this fills up and more
+# fx build factories are ported, we might deal with this differently
+
+# we should be able to port this in-tree and have the respective repos and
+# revisions handle what goes on in here. Tracking: bug 978510
+
+# example config and explanation of how it works:
+# config = {
+#     # if a branch matches a key below, override items in self.config with
+#     # items in the key's value.
+#     # this override can be done for every platform or at a platform level
+#     '<branch-name>': {
+#         # global config items (applies to all platforms and build types)
+#         'repo_path': "projects/<branch-name>",
+#         'graph_server_branch_name': "Firefox",
+#
+#         # platform config items (applies to specific platforms)
+#         'platform_overrides': {
+#             # if a platform matches a key below, override items in
+#             # self.config with items in the key's value
+#             'linux64-debug': {
+#                 'upload_symbols': False,
+#             },
+#             'win64': {
+#                 'enable_checktests': False,
+#             },
+#         }
+#     },
+# }
+
+config = {
+    ### release branches
+    "mozilla-central": {
+        "repo_path": 'mozilla-central',
+        "update_channel": "nightly",
+        "graph_server_branch_name": "Firefox",
+        'use_branch_in_symbols_extra_buildid': False,
+    },
+    'mozilla-release': {
+        'repo_path': 'releases/mozilla-release',
+        # TODO I think we can remove update_channel since we don't run
+        # nightlies for mozilla-release
+        'update_channel': 'release',
+        'branch_uses_per_checkin_strategy': True,
+        'use_branch_in_symbols_extra_buildid': False,
+    },
+    'mozilla-beta': {
+        'repo_path': 'releases/mozilla-beta',
+        # TODO I think we can remove update_channel since we don't run
+        # nightlies for mozilla-beta
+        'update_channel': 'beta',
+        'branch_uses_per_checkin_strategy': True,
+        'use_branch_in_symbols_extra_buildid': False,
+    },
+    'mozilla-aurora': {
+        'repo_path': 'releases/mozilla-aurora',
+        'update_channel': 'aurora',
+        'branch_uses_per_checkin_strategy': True,
+        'use_branch_in_symbols_extra_buildid': False,
+    },
+    'mozilla-esr31': {
+        'repo_path': 'releases/mozilla-esr31',
+        'update_channel': 'nightly-esr31',
+        'branch_uses_per_checkin_strategy': True,
+        'use_branch_in_symbols_extra_buildid': False,
+    },
+    'mozilla-b2g30_v1_4': {
+        'repo_path': 'releases/mozilla-b2g30_v1_4',
+        'use_branch_in_symbols_extra_buildid': False,
+        'update_channel': 'nightly-b2g30',
+        'graph_server_branch_name': 'Mozilla-B2g30-v1.4',
+    },
+    'mozilla-b2g32_v2_0': {
+        'repo_path': 'releases/mozilla-b2g32_v2_0',
+        'use_branch_in_symbols_extra_buildid': False,
+        'update_channel': 'nightly-b2g32',
+        'graph_server_branch_name': 'Mozilla-B2g32-v2.0',
+    },
+    'try': {
+        'repo_path': 'try',
+        'clone_by_revision': True,
+        'clone_with_purge': True,
+        'tinderbox_build_dir': '%(who)s-%(got_revision)s',
+        'to_tinderbox_dated': False,
+        'include_post_upload_builddir': True,
+        'release_to_try_builds': True,
+        'use_branch_in_symbols_extra_buildid': False,
+        'stage_username': 'trybld',
+        'stage_ssh_key': 'trybld_dsa',
+        'branch_supports_uploadsymbols': False,
+    },
+
+    ### project branches
+    'b2g-inbound': {
+        'repo_path': 'integration/b2g-inbound',
+    },
+    'fx-team': {
+        'repo_path': 'integration/fx-team',
+    },
+    'gum': {
+        'branch_uses_per_checkin_strategy': True,
+    },
+    'mozilla-inbound': {
+        'repo_path': 'integration/mozilla-inbound',
+    },
+    'services-central': {
+        'repo_path': 'services/services-central',
+    },
+    'ux': {
+        "graph_server_branch_name": "UX",
+    },
+
+    ### other branches that do not require anything special:
+    # 'alder': {},
+    # 'ash': {},
+    # 'birch': {},
+    # 'build-system': {}
+    # 'cedar': {},
+    # "cypress": {},
+    # 'date': {},
+    # 'elm': {},
+    # 'fig': {},
+    # 'graphics': {}
+    # 'holly': {},
+    # 'jamun': {},
+    # 'larch': {},
+    # 'maple': {},
+    # 'oak': {},
+    # 'pine': {}
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/build_pool_specifics.py
@@ -0,0 +1,46 @@
+# this is a dict of pool specific keys/values. As this fills up and more
+# fx build factories are ported, we might deal with this differently
+
+config = {
+    "staging": {
+        'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+        'balrog_usernames': {
+            'firefox': 'stage-ffxbld',
+        },
+        'balrog_username': 'stage-ffxbld',
+        # if not clobberer_url, only clobber 'abs_work_dir'
+        # if true: possibly clobber, clobberer, and purge_builds
+        # see PurgeMixin for clobber() conditions
+        'clobberer_url': 'https://api-pub-build.allizom.org/clobberer/lastclobber',
+        # staging we should use MozillaTest
+        # but in production we let the self.branch decide via
+        # self._query_graph_server_branch_name()
+        "graph_server_branch_name": "MozillaTest",
+        'graph_server': 'graphs.allizom.org',
+        "hgtool_base_bundle_urls": [
+            'http://dev-stage01.build.mozilla.org/pub/mozilla'
+            '.org/firefox/bundles',
+        ],
+        'symbol_server_host': "dev-stage01.srv.releng.scl3.mozilla.com",
+        'stage_server': 'dev-stage01.srv.releng.scl3.mozilla.com',
+        "sendchange_masters": ["dev-master1.srv.releng.scl3.mozilla.com:9038"],
+    },
+    "production": {
+        'balrog_api_root': 'https://aus4-admin.mozilla.org/api',
+        'balrog_usernames': {
+            'firefox': 'ffxbld',
+        },
+        'balrog_username': 'ffxbld',
+        # if not clobberer_url, only clobber 'abs_work_dir'
+        # if true: possibly clobber, clobberer, and purge_builds
+        # see PurgeMixin for clobber() conditions
+        'clobberer_url': 'https://api.pub.build.mozilla.org/clobberer/lastclobber',
+        'graph_server': 'graphs.mozilla.org',
+        "hgtool_base_bundle_urls": [
+            'https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'
+        ],
+        'symbol_server_host': "symbolpush.mozilla.org",
+        'stage_server': 'stage.mozilla.org',
+        "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
@@ -0,0 +1,152 @@
+import os
+
+STAGE_USERNAME = 'ffxbld'
+STAGE_SSH_KEY = 'ffxbld_rsa'
+
+config = {
+    #########################################################################
+    ######## LINUX GENERIC CONFIG KEYS/VAlUES
+    # if you are updating this with custom 32 bit keys/values please add them
+    # below under the '32 bit specific' code block otherwise, update in this
+    # code block and also make sure this is synced with
+    # releng_base_linux_64_builds.py
+
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    "buildbot_json_path": "buildprops.json",
+    'exes': {
+        'hgtool.py': os.path.join(
+            os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+        ),
+        "buildbot": "/tools/buildbot/bin/buildbot",
+    },
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': True,
+    'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+    'purge_basedirs':  ["/mock/users/cltbld/home/cltbld/build"],
+    # mock shtuff
+    'mock_mozilla_dir':  '/builds/mock_mozilla',
+    'mock_target': 'mozilla-centos6-x86_64',
+    'mock_files': [
+        ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+        ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+        ('/home/cltbld/.boto', '/builds/.boto'),
+        ('/builds/gapi.data', '/builds/gapi.data'),
+        ('/tools/tooltool.py', '/builds/tooltool.py'),
+        ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+    ],
+    'enable_ccache': True,
+    'enable_check_test': True,
+    'vcs_share_base': '/builds/hg-shared',
+    'objdir': 'obj-firefox',
+    'tooltool_script': ["/builds/tooltool.py"],
+    'tooltool_bootstrap': "setup.sh",
+    'enable_count_ctors': True,
+    'enable_talos_sendchange': True,
+    'enable_unittest_sendchange': True,
+    #########################################################################
+
+
+    #########################################################################
+    ###### 32 bit specific ######
+    'base_name': 'Linux_%(branch)s',
+    'platform': 'linux',
+    'stage_platform': 'linux',
+    'enable_max_vsize': False,
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+        'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+        'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+        'SYMBOL_SERVER_USER': 'ffxbld',
+        'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+        'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        # 32 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:\
+/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:\
+/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin',
+        'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib",
+    },
+    'upload_env': {
+        # stage_server is dictated from build_pool_specifics.py
+        'UPLOAD_HOST': '%(stage_server)s',
+        'UPLOAD_USER': '%(stage_username)s',
+        'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+        'UPLOAD_TO_TEMP': '1',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux/minidump_stackwalk',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'purge_minsize': 12,
+    'mock_packages': [
+        'autoconf213', 'python', 'mozilla-python27', 'zip', 'mozilla-python27-mercurial',
+        'git', 'ccache', 'perl-Test-Simple', 'perl-Config-General',
+        'yasm', 'wget',
+        'mpfr',  # required for system compiler
+        'xorg-x11-font*',  # fonts required for PGO
+        'imake',  # required for makedepend!?!
+        ### <-- from releng repo
+        'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+        'yasm', 'ccache',
+        ###
+        'valgrind',
+        ######## 32 bit specific ###########
+        'glibc-static.i686', 'libstdc++-static.i686',
+        'gtk2-devel.i686', 'libnotify-devel.i686',
+        'alsa-lib-devel.i686', 'libcurl-devel.i686',
+        'wireless-tools-devel.i686', 'libX11-devel.i686',
+        'libXt-devel.i686', 'mesa-libGL-devel.i686',
+        'gnome-vfs2-devel.i686', 'GConf2-devel.i686',
+        'pulseaudio-libs-devel.i686',
+        'gstreamer-devel.i686', 'gstreamer-plugins-base-devel.i686',
+        # Packages already installed in the mock environment, as x86_64
+        # packages.
+        'glibc-devel.i686', 'libgcc.i686', 'libstdc++-devel.i686',
+        # yum likes to install .x86_64 -devel packages that satisfy .i686
+        # -devel packages dependencies. So manually install the dependencies
+        # of the above packages.
+        'ORBit2-devel.i686', 'atk-devel.i686', 'cairo-devel.i686',
+        'check-devel.i686', 'dbus-devel.i686', 'dbus-glib-devel.i686',
+        'fontconfig-devel.i686', 'glib2-devel.i686',
+        'hal-devel.i686', 'libICE-devel.i686', 'libIDL-devel.i686',
+        'libSM-devel.i686', 'libXau-devel.i686', 'libXcomposite-devel.i686',
+        'libXcursor-devel.i686', 'libXdamage-devel.i686',
+        'libXdmcp-devel.i686', 'libXext-devel.i686', 'libXfixes-devel.i686',
+        'libXft-devel.i686', 'libXi-devel.i686', 'libXinerama-devel.i686',
+        'libXrandr-devel.i686', 'libXrender-devel.i686',
+        'libXxf86vm-devel.i686', 'libdrm-devel.i686', 'libidn-devel.i686',
+        'libpng-devel.i686', 'libxcb-devel.i686', 'libxml2-devel.i686',
+        'pango-devel.i686', 'perl-devel.i686', 'pixman-devel.i686',
+        'zlib-devel.i686',
+        # Freetype packages need to be installed be version, because a newer
+        # version is available, but we don't want it for Firefox builds.
+        'freetype-2.3.11-6.el6_1.8.i686',
+        'freetype-devel-2.3.11-6.el6_1.8.i686',
+        'freetype-2.3.11-6.el6_1.8.x86_64',
+        ######## 32 bit specific ###########
+    ],
+    'src_mozconfig': 'browser/config/mozconfigs/linux32/nightly',
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
+releng.manifest",
+    #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
@@ -0,0 +1,133 @@
+import os
+
+STAGE_USERNAME = 'ffxbld'
+STAGE_SSH_KEY = 'ffxbld_rsa'
+
+config = {
+    #########################################################################
+    ######## LINUX GENERIC CONFIG KEYS/VAlUES
+    # if you are updating this with custom 64 bit keys/values please add them
+    # below under the '64 bit specific' code block otherwise, update in this
+    # code block and also make sure this is synced with
+    # releng_base_linux_64_builds.py
+
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    "buildbot_json_path": "buildprops.json",
+    'exes': {
+        'hgtool.py': os.path.join(
+            os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+        ),
+        "buildbot": "/tools/buildbot/bin/buildbot",
+    },
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': True,
+    'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+    'purge_basedirs':  ["/mock/users/cltbld/home/cltbld/build"],
+    # mock shtuff
+    'mock_mozilla_dir':  '/builds/mock_mozilla',
+    'mock_target': 'mozilla-centos6-x86_64',
+    'mock_files': [
+        ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+        ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+        ('/home/cltbld/.boto', '/builds/.boto'),
+        ('/builds/gapi.data', '/builds/gapi.data'),
+        ('/tools/tooltool.py', '/builds/tooltool.py'),
+        ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+    ],
+    'enable_ccache': True,
+    'enable_check_test': True,
+    'vcs_share_base': '/builds/hg-shared',
+    'objdir': 'obj-firefox',
+    'tooltool_script': ["/builds/tooltool.py"],
+    'tooltool_bootstrap': "setup.sh",
+    'enable_count_ctors': True,
+    'enable_talos_sendchange': True,
+    'enable_unittest_sendchange': True,
+    #########################################################################
+
+
+    #########################################################################
+    ###### 64 bit specific ######
+    'base_name': 'Linux_x86-64_%(branch)s',
+    'platform': 'linux64',
+    'stage_platform': 'linux64',
+    'enable_max_vsize': False,
+    'use_platform_in_symbols_extra_buildid': True,
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+        'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+        'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+        'SYMBOL_SERVER_USER': 'ffxbld',
+        'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+        'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+        'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib64",
+        ##
+    },
+    'upload_env': {
+        # stage_server is dictated from build_pool_specifics.py
+        'UPLOAD_HOST': '%(stage_server)s',
+        'UPLOAD_USER': '%(stage_username)s',
+        'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+        'UPLOAD_TO_TEMP': '1',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux64/minidump_stackwalk',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'purge_minsize': 14,
+    'mock_packages': [
+        'autoconf213', 'python', 'mozilla-python27', 'zip', 'mozilla-python27-mercurial',
+        'git', 'ccache', 'perl-Test-Simple', 'perl-Config-General',
+        'yasm', 'wget',
+        'mpfr',  # required for system compiler
+        'xorg-x11-font*',  # fonts required for PGO
+        'imake',  # required for makedepend!?!
+        ### <-- from releng repo
+        'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+        'yasm', 'ccache',
+        ###
+        'valgrind', 'dbus-x11',
+        ######## 64 bit specific ###########
+        'glibc-static', 'libstdc++-static',
+        'gtk2-devel', 'libnotify-devel',
+        'alsa-lib-devel', 'libcurl-devel', 'wireless-tools-devel',
+        'libX11-devel', 'libXt-devel', 'mesa-libGL-devel', 'gnome-vfs2-devel',
+        'GConf2-devel',
+        ### from releng repo
+        'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+        'yasm', 'ccache',
+        ###
+        'pulseaudio-libs-devel', 'gstreamer-devel',
+        'gstreamer-plugins-base-devel', 'freetype-2.3.11-6.el6_1.8.x86_64',
+        'freetype-devel-2.3.11-6.el6_1.8.x86_64'
+    ],
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/nightly',
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+releng.manifest",
+    #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -0,0 +1,92 @@
+import os
+import sys
+
+STAGE_USERNAME = 'ffxbld'
+STAGE_SSH_KEY = 'ffxbld_rsa'
+
+config = {
+    #########################################################################
+    ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock',
+        'build',
+        'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    "buildbot_json_path": "buildprops.json",
+    'exes': {
+        'python2.7': sys.executable,
+        'hgtool.py': os.path.join(
+            os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+        ),
+        "buildbot": "/tools/buildbot/bin/buildbot",
+    },
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': True,
+    'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+    'purge_basedirs':  [],
+    'enable_ccache': True,
+    'enable_check_test': True,
+    'vcs_share_base': '/builds/hg-shared',
+    'objdir': 'obj-firefox/i386',
+    'tooltool_script': ["/builds/tooltool.py"],
+    'tooltool_bootstrap': "setup.sh",
+    'enable_count_ctors': False,
+    'enable_talos_sendchange': True,
+    'enable_unittest_sendchange': True,
+    #########################################################################
+
+
+    #########################################################################
+    ###### 64 bit specific ######
+    'base_name': 'OS X 10.7 %(branch)s',
+    'platform': 'macosx64',
+    'stage_platform': 'macosx64',
+    'enable_max_vsize': False,
+    'use_platform_in_symbols_extra_buildid': True,
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+        'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+        'SYMBOL_SERVER_SSH_KEY': "/Users/cltbld/.ssh/ffxbld_rsa",
+        'SYMBOL_SERVER_USER': 'ffxbld',
+        'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+        'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+        'CHOWN_ROOT': '~/bin/chown_root',
+        'CHOWN_REVERT': '~/bin/chown_revert',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+                '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+        ##
+    },
+    'upload_env': {
+        # stage_server is dictated from build_pool_specifics.py
+        'UPLOAD_HOST': '%(stage_server)s',
+        'UPLOAD_USER': '%(stage_username)s',
+        'UPLOAD_SSH_KEY': '/Users/cltbld/.ssh/%(stage_ssh_key)s',
+        'UPLOAD_TO_TEMP': '1',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/osx64/minidump_stackwalk',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'purge_minsize': 12,
+    'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/nightly',
+    'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
+    #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
@@ -0,0 +1,107 @@
+import os
+import sys
+
+STAGE_USERNAME = 'ffxbld'
+STAGE_SSH_KEY = 'ffxbld_rsa'
+
+config = {
+    #########################################################################
+    ######## WINDOWS GENERIC CONFIG KEYS/VAlUES
+    # if you are updating this with custom 32 bit keys/values please add them
+    # below under the '32 bit specific' code block otherwise, update in this
+    # code block and also make sure this is synced with
+    # releng_base_windows_64_builds.py
+
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock', windows do not use mock
+        'build',
+        'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    "buildbot_json_path": "buildprops.json",
+    'exes': {
+        'python2.7': sys.executable,
+        'hgtool.py': [
+            sys.executable,
+            os.path.join(
+                os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+            )
+        ],
+        "buildbot": [
+            sys.executable,
+            'c:\\mozilla-build\\buildbotve\\scripts\\buildbot'
+        ],
+        "make": [
+            sys.executable,
+            os.path.join(
+                os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+            )
+        ],
+        'virtualenv': [
+            sys.executable,
+            'c:/mozilla-build/buildbotve/virtualenv.py'
+        ],
+    },
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': True,
+    'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+    'purge_basedirs':  [],
+    'enable_ccache': False,
+    'enable_check_test': True,
+    'vcs_share_base': 'C:/builds/hg-shared',
+    'objdir': 'obj-firefox',
+    'tooltool_script': [sys.executable,
+                        'C:/mozilla-build/tooltool.py'],
+    'tooltool_bootstrap': "setup.sh",
+    'enable_count_ctors': False,
+    'enable_talos_sendchange': True,
+    'enable_unittest_sendchange': True,
+    #########################################################################
+
+
+     #########################################################################
+     ###### 32 bit specific ######
+    'base_name': 'WINNT_5.2_%(branch)s',
+    'platform': 'win32',
+    'stage_platform': 'win32',
+    'enable_max_vsize': True,
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'PATH': 'C:/mozilla-build/nsis-3.0a2;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+                'C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/8.0/Debuggers/x64/srcsrv/pdbstr.exe',
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+        'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+        'SYMBOL_SERVER_SSH_KEY': '/c/Users/cltbld/.ssh/ffxbld_rsa',
+        'SYMBOL_SERVER_USER': 'ffxbld',
+        'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+        'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+        'TINDERBOX_OUTPUT': '1',
+    },
+    'upload_env': {
+        # stage_server is dictated from build_pool_specifics.py
+        'UPLOAD_HOST': '%(stage_server)s',
+        'UPLOAD_USER': '%(stage_username)s',
+        'UPLOAD_SSH_KEY': '/c/Users/cltbld/.ssh/%(stage_ssh_key)s',
+        'UPLOAD_TO_TEMP': '1',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win32/minidump_stackwalk.exe',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'enable_pymake': True,
+    'purge_minsize': 12,
+    'src_mozconfig': 'browser/config/mozconfigs/win32/nightly',
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
+    #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
@@ -0,0 +1,105 @@
+import os
+import sys
+
+STAGE_USERNAME = 'ffxbld'
+STAGE_SSH_KEY = 'ffxbld_rsa'
+
+config = {
+    #########################################################################
+    ######## WINDOWS GENERIC CONFIG KEYS/VAlUES
+    # if you are updating this with custom 32 bit keys/values please add them
+    # below under the '32 bit specific' code block otherwise, update in this
+    # code block and also make sure this is synced with
+    # releng_base_windows_64_builds.py
+
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock', windows do not use mock
+        'build',
+        'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    "buildbot_json_path": "buildprops.json",
+    'exes': {
+        'python2.7': sys.executable,
+        'hgtool.py': [
+            sys.executable,
+            os.path.join(
+                os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+            )
+        ],
+        "buildbot": [
+            sys.executable,
+            'c:\\mozilla-build\\buildbotve\\scripts\\buildbot'
+        ],
+        "make": [
+            sys.executable,
+            os.path.join(
+                os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+            )
+        ],
+        'virtualenv': [
+            sys.executable,
+            'c:/mozilla-build/buildbotve/virtualenv.py'
+        ],
+    },
+    'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+    # decides whether we want to use moz_sign_cmd in env
+    'enable_signing': True,
+    'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+    'purge_basedirs':  [],
+    'enable_ccache': False,
+    'enable_check_test': True,
+    'vcs_share_base': 'C:/builds/hg-shared',
+    'objdir': 'obj-firefox',
+    'tooltool_script': [sys.executable,
+                        'C:/mozilla-build/tooltool.py'],
+    'tooltool_bootstrap': "setup.sh",
+    'enable_count_ctors': False,
+    'enable_talos_sendchange': True,
+    'enable_unittest_sendchange': True,
+    #########################################################################
+
+
+     #########################################################################
+     ###### 64 bit specific ######
+    'base_name': 'WINNT_6.1_x86-64_%(branch)s',
+    'platform': 'win64',
+    'stage_platform': 'win64',
+    'enable_max_vsize': False,
+    'env': {
+        'MOZ_SYMBOLS_EXTRA_BUILDID': 'win64',
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'PATH': 'C:/mozilla-build/python27;C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/8.0/Debuggers/x64/srcsrv/pdbstr.exe',
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+        'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+        'SYMBOL_SERVER_SSH_KEY': '/c/Users/cltbld/.ssh/ffxbld_rsa',
+        'SYMBOL_SERVER_USER': 'ffxbld',
+        'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+        'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+        'TINDERBOX_OUTPUT': '1',
+    },
+    'upload_env': {
+        # stage_server is dictated from build_pool_specifics.py
+        'UPLOAD_HOST': '%(stage_server)s',
+        'UPLOAD_USER': '%(stage_username)s',
+        'UPLOAD_SSH_KEY': '/c/Users/cltbld/.ssh/%(stage_ssh_key)s',
+        'UPLOAD_TO_TEMP': '1',
+    },
+    "check_test_env": {
+        'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win64/minidump_stackwalk.exe',
+        'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+    },
+    'enable_pymake': True,
+    'purge_minsize': 12,
+    'src_mozconfig': 'browser/config/mozconfigs/win64/nightly',
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
+    #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
@@ -0,0 +1,42 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'debug_build': True,
+    'stage_platform': 'linux-debug',
+    'purge_minsize': 15,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 32 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': MOZ_OBJDIR,
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        # 32 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+        'LD_LIBRARY_PATH': '/tools/gcc-4.3.3/installed/lib:\
+%s/dist/bin' % (MOZ_OBJDIR,),
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        'TINDERBOX_OUTPUT': '1',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux32/debug',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
@@ -0,0 +1,43 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        # 'update',
+    ],
+    'stage_platform': 'linux64-asan',
+    'purge_minsize': 12,
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/nightly-asan',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
@@ -0,0 +1,44 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        # 'update',
+    ],
+    'stage_platform': 'linux64-asan-debug',
+    'debug_build': True,
+    'purge_minsize': 12,
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/debug-asan',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
@@ -0,0 +1,41 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'linux64-cc',
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_count_ctors': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/code-coverage',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
@@ -0,0 +1,41 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'linux64-debug',
+    'debug_build': True,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': MOZ_OBJDIR,
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        # 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+        'LD_LIBRARY_PATH': '/tools/gcc-4.3.3/installed/lib64:\
+%s/dist/bin' % (MOZ_OBJDIR,),
+        'TINDERBOX_OUTPUT': '1',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/debug',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_graphene.py
@@ -0,0 +1,40 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        'update',  # may or may not happen based on query_is_nightly()
+    ],
+    'stage_platform': 'linux64',
+    'stage_product': 'b2g',
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    'enable_count_ctors': False,
+    'objdir': 'obj-graphene',
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-graphene',
+        'TINDERBOX_OUTPUT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+        "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+        "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/ffxbld_rsa",
+        "SYMBOL_SERVER_USER": "ffxbld",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+    },
+    'src_mozconfig': 'b2g/graphene/config/mozconfigs/linux64/nightly',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_mulet.py
@@ -0,0 +1,40 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+    ],
+    'stage_platform': 'linux64-mulet',
+    'stage_product': 'b2g',
+    'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/linux64/releng.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_count_ctors': False,
+    'enable_check_test': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+    },
+    'src_mozconfig': 'b2g/dev/config/mozconfigs/linux64/mulet',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
@@ -0,0 +1,47 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'debug_build': True,
+    'stage_platform': 'linux64-st-an-debug',
+    'purge_minsize': 12,
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+clang.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': MOZ_OBJDIR,
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        # 64 bit specific
+        'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/linux64/\
+debug-static-analysis-clang',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
@@ -0,0 +1,41 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'macosx64-debug',
+    'debug_build': True,
+    'objdir': 'obj-firefox',
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        ## 64 bit specific
+        'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+                '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+        ##
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug',
+    'purge_minsize': 10,
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_graphene.py
@@ -0,0 +1,38 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'build',
+        'update',  # may or may not happen based on query_is_nightly()
+    ],
+    'stage_platform': 'mac',
+    'stage_product': 'b2g',
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    'enable_count_ctors': False,
+    'objdir': 'obj-graphene',
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-graphene',
+        'TINDERBOX_OUTPUT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        ## 64 bit specific
+        'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+                '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+        "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+        "SYMBOL_SERVER_SSH_KEY": "/Users/cltbld/.ssh/ffxbld_rsa",
+        "SYMBOL_SERVER_USER": "ffxbld",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+    },
+    'src_mozconfig': 'b2g/graphene/config/mozconfigs/macosx64/nightly',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_mulet.py
@@ -0,0 +1,40 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'build',
+    ],
+    'stage_platform': 'macosx64-mulet',
+    'stage_product': 'b2g',
+    'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/macosx64/releng.manifest",
+    'objdir': 'obj-firefox',
+    'enable_signing': False,
+    'enable_unittest_sendchange': False,
+    'enable_talos_sendchange': False,
+    'enable_check_test': False,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        ## 64 bit specific
+        'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+                '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+        ##
+    },
+    'src_mozconfig': 'b2g/dev/config/mozconfigs/macosx64/mulet',
+    'purge_minsize': 10,
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
@@ -0,0 +1,46 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock',
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'debug_build': True,
+    'stage_platform': 'macosx64-st-an-debug',
+    'purge_minsize': 12,
+    'tooltool_manifest_src': "browser/config/tooltool-manifests/macosx64/\
+clang.manifest",
+    'platform_supports_post_upload_to_latest': False,
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    'objdir': MOZ_OBJDIR,
+    #### 64 bit build specific #####
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': MOZ_OBJDIR,
+        'TINDERBOX_OUTPUT': '1',
+        'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+        'TOOLTOOL_HOME': '/builds',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'CCACHE_DIR': '/builds/ccache',
+        'CCACHE_COMPRESS': '1',
+        'CCACHE_UMASK': '002',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        # 64 bit specific
+        'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+                '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/macosx64/\
+debug-static-analysis',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
@@ -0,0 +1,35 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock', windows do not use mock
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'win32-debug',
+    'debug_build': True,
+    'enable_talos_sendchange': False,
+    #### 32 bit build specific #####
+    'env': {
+        'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'PATH': 'C:/mozilla-build/nsis-3.0a2;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+                'C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        'TINDERBOX_OUTPUT': '1',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/win32/debug',
+    'purge_minsize': 9,
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_mulet.py
@@ -0,0 +1,34 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'build',
+    ],
+    'stage_platform': 'win32-mulet',
+    'stage_product': 'b2g',
+    'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/win32/releng.manifest",
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    'enable_check_test': False,
+    #### 32 bit build specific #####
+    'env': {
+        'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'PATH': 'C:/mozilla-build/nsis-3.0a2;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+                'C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        'TINDERBOX_OUTPUT': '1',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+    },
+    'src_mozconfig': 'b2g/dev/config/mozconfigs/win32/mulet',
+    'purge_minsize': 9,
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
@@ -0,0 +1,33 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        # 'setup-mock', windows do not use mock
+        'build',
+        # 'generate-build-stats',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'win64-debug',
+    'debug_build': True,
+    'enable_talos_sendchange': False,
+    #### 64 bit build specific #####
+    'env': {
+        'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZ_AUTOMATION': '1',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-firefox',
+        'PATH': 'C:/mozilla-build/python27;C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        'TINDERBOX_OUTPUT': '1',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+    },
+    'src_mozconfig': 'browser/config/mozconfigs/win64/debug',
+    'purge_minsize': 9,
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_graphene.py
@@ -0,0 +1,37 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'clone-tools',
+        'build',
+        'update',  # may or may not happen based on query_is_nightly()
+    ],
+    'stage_platform': 'win64',
+    'stage_product': 'b2g',
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
+    'enable_count_ctors': False,
+    'objdir': 'obj-graphene',
+    'env': {
+        'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+        'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'MOZ_AUTOMATION': '1',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'MOZ_OBJDIR': 'obj-graphene',
+        'PATH': 'C:/mozilla-build/nsis-3.0a2;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+                'C:/mozilla-build/buildbotve/scripts;'
+                '%s' % (os.environ.get('path')),
+        'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+        'TINDERBOX_OUTPUT': '1',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+        "SYMBOL_SERVER_SSH_KEY": "/c/Users/cltbld/.ssh/ffxbld_rsa",
+        "SYMBOL_SERVER_USER": "ffxbld",
+        "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+    },
+    'src_mozconfig': 'b2g/graphene/config/mozconfigs/win64/nightly',
+    #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/developer_config.py
@@ -0,0 +1,48 @@
+"""
+This config file can be appended to any other mozharness job
+running under treeherder. The purpose of this config is to
+override values that are specific to Release Engineering machines
+that can reach specific hosts within their network.
+In other words, this config allows you to run any job
+outside of the Release Engineering network
+
+Using this config file should be accompanied with using
+--test-url and --installer-url where appropiate
+"""
+
+import os
+LOCAL_WORKDIR = os.path.expanduser("~/.mozilla/releng")
+
+config = {
+    # Developer mode values
+    "developer_mode": True,
+    "local_workdir": LOCAL_WORKDIR,
+
+    # General local variable overwrite
+    "exes": {},
+    "find_links": ["http://pypi.pub.build.mozilla.org/pub"],
+    "replace_urls": [
+        ("http://pvtbuilds.pvt.build",
+         "https://pvtbuilds"),
+        ("http://tooltool.pvt.build.mozilla.org/build",
+         "https://secure.pub.build.mozilla.org/tooltool/pvt/build")
+    ],
+
+    # Talos related
+    "python_webserver": True,
+    "virtualenv_path": '%s/build/venv' % os.getcwd(),
+
+    # Tooltool related
+    "tooltool_servers": [
+        "https://secure.pub.build.mozilla.org/tooltool/pvt/build"
+    ],
+    "tooltool_cache": os.path.join(LOCAL_WORKDIR, "builds/tooltool_cache"),
+    "tooltool_cache_path": os.path.join(LOCAL_WORKDIR,
+                                        "builds/tooltool_cache"),
+    # Android related
+    "host_utils_url":
+        "https://secure.pub.build.mozilla.org/tooltool" +
+        "/pvt/build/sha512/372c89f9dccaf5ee3b9d35fd1cfeb089e1e5db3ff1c04e35" +
+        "aa3adc8800bc61a2ae10e321f37ae7bab20b56e60941f91bb003bcb22035902a73" +
+        "d70872e7bd3282",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_b2g.py
@@ -0,0 +1,23 @@
+config = {
+  'build_command': "build.b2g",
+  'expect_file': "expect.b2g.json",
+
+  'default_actions': [
+      'clobber',
+      'checkout-tools',
+      'checkout-sources',
+      'get-blobs',
+      'clobber-shell',
+      'configure-shell',
+      'build-shell',
+      'clobber-analysis',
+      'setup-analysis',
+      'run-analysis',
+      'collect-analysis-output',
+      'upload-analysis',
+      'check-expectations',
+   ],
+
+    'sixgill_manifest': "build/sixgill-b2g.manifest",
+    'b2g_target_compiler_prefix': "target_compiler/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_browser.py
@@ -0,0 +1,4 @@
+config = {
+  'build_command': "build.browser",
+  'expect_file': "expect.browser.json",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_shell.py
@@ -0,0 +1,4 @@
+config = {
+  'build_command': "build.shell",
+  'expect_file': "expect.shell.json",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/common.py
@@ -0,0 +1,89 @@
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+PYTHON_DIR = "/tools/python27"
+SRCDIR = "source"
+
+config = {
+    "log_name": "hazards",
+    "shell-objdir": "obj-opt-js",
+    "analysis-dir": "analysis",
+    "analysis-objdir": "obj-analyzed",
+    "srcdir": SRCDIR,
+    "analysis-scriptdir": "js/src/devtools/rootAnalysis",
+
+    # These paths are relative to the tooltool checkout location
+    "sixgill": "sixgill/usr/libexec/sixgill",
+    "sixgill_bin": "sixgill/usr/bin",
+
+    "python": PYTHON_DIR + "/bin/python2.7",
+
+    "exes": {
+        'hgtool.py': '%(abs_tools_dir)s/buildfarm/utils/hgtool.py',
+        'gittool.py': '%(abs_tools_dir)s/buildfarm/utils/gittool.py',
+        'tooltool.py': '/tools/tooltool.py',
+    },
+
+    "purge_minsize": 18,
+    "force_clobber": True,
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+
+    "repos": [{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "revision": "default",
+        "dest": "tools"
+    }],
+
+    "upload_remote_baseuri": 'https://ftp-ssl.mozilla.org/',
+
+    'tools_dir': "/tools",
+    'compiler_manifest': "build/gcc.manifest",
+    'b2g_compiler_manifest': "build/gcc-b2g.manifest",
+    'compiler_setup': "setup.sh.gcc",
+    'sixgill_manifest': "build/sixgill.manifest",
+    'sixgill_setup': "setup.sh.sixgill",
+
+    # Mock.
+    "mock_packages": [
+        "autoconf213", "mozilla-python27-mercurial", "ccache",
+        "zip", "zlib-devel", "glibc-static",
+        "openssh-clients", "mpfr", "wget", "rsync",
+
+        # For building the JS shell
+        "gmp-devel", "nspr", "nspr-devel",
+
+        # For building the browser
+        "dbus-devel", "dbus-glib-devel", "hal-devel",
+        "libICE-devel", "libIDL-devel",
+
+        # For mach resource-usage
+        "python-psutil",
+
+        'zip', 'git',
+        'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+        'gtk2-devel', 'libnotify-devel', 'yasm',
+        'alsa-lib-devel', 'libcurl-devel',
+        'wireless-tools-devel', 'libX11-devel',
+        'libXt-devel', 'mesa-libGL-devel',
+        'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+        'mpfr',  # required for system compiler
+        'xorg-x11-font*',  # fonts required for PGO
+        'imake',  # required for makedepend!?!
+        'pulseaudio-libs-devel',
+        'freetype-2.3.11-6.el6_1.8.x86_64',
+        'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+        'gstreamer-devel', 'gstreamer-plugins-base-devel',
+    ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+        ("/tools/tooltool.py", "/tools/tooltool.py"),
+    ],
+    "env_replacements": {
+        "pythondir": PYTHON_DIR,
+        "gccdir": "%(abs_work_dir)s/gcc",
+        "sixgilldir": "%(abs_work_dir)s/sixgill",
+    },
+    "partial_env": {
+        "PATH": "%(pythondir)s/bin:%(gccdir)s/bin:%(PATH)s",
+        "LD_LIBRARY_PATH": "%(sixgilldir)s/usr/lib64",
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/luciddream/linux_config.py
@@ -0,0 +1,44 @@
+# This is a template config file for luciddream production.
+import os
+import platform
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+    # mozharness script options
+    "xre_url": xre_url,
+    "b2gdesktop_url": "http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015-03-09-00-25-06-mozilla-b2g37_v2_2/b2g-37.0.multi.linux-i686.tar.bz2",
+
+    # mozharness configuration
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+        'gittool.py': '%(abs_tools_dir)s/buildfarm/utils/gittool.py',
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+    # will handle in-tree config as subsequent patch
+    # "in_tree_config": "config/mozharness/luciddream.py",
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "tooltool_cache": "/builds/tooltool_cache",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/automation_emulator_config.py
@@ -0,0 +1,44 @@
+# This is a template config file for marionette production.
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    # marionette options
+    "test_type": "b2g",
+    "emulator": "arm",
+    "tooltool_cache": "/builds/tooltool_cache",
+    "tooltool_servers": ["http://tooltool.pvt.build.mozilla.org/build/"],
+    "test_manifest": "unit-tests.ini",
+
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-marionette',
+    ],
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+    "in_tree_config": "config/mozharness/marionette.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/gaia_ui_test_emu_config.py
@@ -0,0 +1,7 @@
+# This is a config file for gaiatest on emulators; it's meant to be used
+# with the primary gaia-ui-test config file.
+
+config = {
+    'update_files': False,
+    'emulator': 'arm',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/gaia_ui_test_prod_config.py
@@ -0,0 +1,54 @@
+# This is a template config file for marionette production.
+import os
+import platform
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+    xre_url = "http://tooltool.pvt.build.mozilla.org/build/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+    # marionette options
+    "test_type": "b2g",
+    "marionette_address": "localhost:2828",
+    "gaiatest": True,
+    "xre_url": xre_url,
+    "application": "b2g",
+
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'pull',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-marionette',
+    ],
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "default_blob_upload_servers": [
+        "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+    "vcs_output_timeout": 1760,
+    "in_tree_config": "config/mozharness/marionette.py",
+    "tooltool_servers": ["http://runtime-binaries.pvt.build.mozilla.org/tooltool/"],
+    "tooltool_cache": "/builds/tooltool_cache",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/prod_config.py
@@ -0,0 +1,44 @@
+# This is a template config file for marionette production.
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    # marionette options
+    "test_type": "browser",
+    "marionette_address": "localhost:2828",
+    "test_manifest": "unit-tests.ini",
+
+    "vcs_share_base": HG_SHARE_BASE_DIR,
+    "exes": {
+        'python': '/tools/buildbot/bin/python',
+        'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+        'tooltool.py': "/tools/tooltool.py",
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-marionette',
+    ],
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+    "in_tree_config": "config/mozharness/marionette.py",
+    "download_symbols": "ondemand",
+    "download_minidump_stackwalk": True,
+    "tooltool_servers": ["http://runtime-binaries.pvt.build.mozilla.org/tooltool/"],
+    "tooltool_cache": "/builds/tooltool_cache",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/test_config.py
@@ -0,0 +1,21 @@
+# This is a template config file for marionette test.
+
+config = {
+    # marionette options
+    "test_type": "browser",
+    "marionette_address": "localhost:2828",
+    "test_manifest": "unit-tests.ini",
+
+    # XXX: replace these with something appropriate to your system
+    "installer_url": "http://stage.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-linux-debug/1344372927/firefox-17.0a1.en-US.linux-i686.tar.bz2",
+    "test_url": "http://stage.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-linux-debug/1344372927/firefox-17.0a1.en-US.linux-i686.tests.zip",
+
+    "default_actions": [
+        'clobber',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-marionette',
+    ],
+    "in_tree_config": "config/mozharness/marionette.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/marionette/windows_config.py
@@ -0,0 +1,46 @@
+# This is a template config file for marionette production on Windows.
+import os
+import sys
+
+config = {
+    # marionette options
+    "test_type": "browser",
+    "marionette_address": "localhost:2828",
+    "test_manifest": "unit-tests.ini",
+
+    "virtualenv_python_dll": 'c:/mozilla-build/python27/python27.dll',
+    "virtualenv_path": 'venv',
+    "exes": {
+        'python': 'c:/mozilla-build/python27/python',
+        'virtualenv': ['c:/mozilla-build/python27/python', 'c:/mozilla-build/buildbotve/virtualenv.py'],
+        'hg': 'c:/mozilla-build/hg/hg',
+        'mozinstall': ['%s/build/venv/scripts/python' % os.getcwd(),
+                       '%s/build/venv/scripts/mozinstall-script.py' % os.getcwd()],
+        'tooltool.py': [sys.executable, 'C:/mozilla-build/tooltool.py'],
+    },
+
+    "find_links": [
+        "http://pypi.pvt.build.mozilla.org/pub",
+        "http://pypi.pub.build.mozilla.org/pub",
+    ],
+    "pip_index": False,
+
+    "buildbot_json_path": "buildprops.json",
+
+    "default_actions": [
+        'clobber',
+        'read-buildbot-config',
+        'download-and-extract',
+        'create-virtualenv',
+        'install',
+        'run-marionette',
+    ],
+    "default_blob_upload_servers": [
+         "https://blobupload.elasticbeanstalk.com",
+    ],
+    "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+    "in_tree_config": "config/mozharness/marionette.py",
+    "download_minidump_stackwalk": True,
+    "tooltool_servers": ["http://runtime-binaries.pvt.build.mozilla.org/tooltool/"],
+    "download_symbols": "ondemand",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/aurora_to_beta.py
@@ -0,0 +1,34 @@
+config = {
+    "log_name": "aurora_to_beta",
+
+    "branding_dirs": [
+        "mobile/android/config/mozconfigs/android-api-11/",
+        "mobile/android/config/mozconfigs/android-api-9-10-constrained/",
+        "mobile/android/config/mozconfigs/android-x86/",
+    ],
+    "branding_files": ["debug", "l10n-nightly", "nightly"],
+
+    # Disallow sharing, since we want pristine .hg directories.
+    # "vcs_share_base": None,
+    # "hg_share_base": None,
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "from_repo_url": "ssh://hg.mozilla.org/releases/mozilla-aurora",
+    "to_repo_url": "ssh://hg.mozilla.org/releases/mozilla-beta",
+
+    "base_tag": "FIREFOX_BETA_%(major_version)s_BASE",
+    "end_tag": "FIREFOX_BETA_%(major_version)s_END",
+
+    "migration_behavior": "aurora_to_beta",
+
+    "virtualenv_modules": [
+        "requests==2.2.1",
+    ],
+
+    "post_merge_builders": [
+        "mozilla-beta hg bundle",
+    ],
+    "post_merge_nightly_branches": [
+        # No nightlies on mozilla-beta
+    ],
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/b2g_branch_repos.py
@@ -0,0 +1,41 @@
+import os
+import sys
+
+config = {
+    "log_name": "b2g_branch_repos",
+
+    "manifest_repo_url": "git://github.com/mozilla-b2g/b2g-manifest.git",
+    "manifest_repo_revision": "master",
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "branch_remote_substrings": [
+        'github.com/mozilla',
+    ],
+    "no_branch_repos": [
+        "gecko",
+        # device conflict
+        "platform_frameworks_base",
+        "device_lge_hammerhead-kernel",
+        "device-hammerhead",
+    ],
+    "extra_branch_manifest_repos": [
+        "gecko",
+        "gaia",
+    ],
+    "branch_order": [
+        "master",
+        "b2g-4.3_r2.1",   # prefer jellybean over kitkat for now, since
+        "b2g-jellybean",  # most of our builds use jb
+        "ics_chocolate_rb4.2",  # prefer wasabi's hardware_qcom_display over
+                                # otoro's
+        "foxfone-one",  # prefer flame's kernel_lm ove flame-kk's
+    ],
+
+    "exes": {
+        "hg": [
+            "hg", "--config",
+            "hostfingerprints.hg.mozilla.org=af:27:b9:34:47:4e:e5:98:01:f6:83:2b:51:c9:aa:d8:df:fb:1a:27",
+        ],
+        "gittool.py": [sys.executable, os.getcwd() + "/build/tools/buildfarm/utils/gittool.py"],
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/b2g_tag.py
@@ -0,0 +1,44 @@
+LIVE_B2G_BRANCHES = {
+    "mozilla-b2g30_v1_4": {
+        "gaia_branch": "v1.4",
+        "tag_name": "B2G_1_4_%(DATE)s_MERGEDAY",
+    },
+    "mozilla-b2g32_v2_0": {
+        "gaia_branch": "v2.0",
+        "tag_name": "B2G_2_0_%(DATE)s_MERGEDAY",
+    },
+    "mozilla-b2g34_v2_1": {
+        "gaia_branch": "v2.1",
+        "tag_name": "B2G_2_1_%(DATE)s_MERGEDAY",
+    },
+    "mozilla-b2g34_v2_1s": {
+        "gaia_branch": "v2.1s",
+        "tag_name": "B2G_2_1s_%(DATE)s_MERGEDAY",
+    },
+    "mozilla-b2g37_v2_2": {
+        "gaia_branch": "v2.2",
+        "tag_name": "B2G_2_2_%(DATE)s_MERGEDAY",
+    },
+}
+
+config = {
+    "log_name": "b2g_tag",
+
+    "gaia_mapper_base_url": "http://cruncher/mapper/gaia/git",
+    "gaia_url": "git@github.com:mozilla-b2g/gaia.git",
+    "hg_base_pull_url": "https://hg.mozilla.org/releases",
+    "hg_base_push_url": "ssh://hg.mozilla.org/releases",
+    "b2g_branches": LIVE_B2G_BRANCHES,
+
+    # Disallow sharing, since we want pristine .hg directories.
+    "vcs_share_base": None,
+    "hg_share_base": None,
+
+    # any hg command line options
+    "exes": {
+        "hg": [
+            "hg", "--config",
+            "hostfingerprints.hg.mozilla.org=af:27:b9:34:47:4e:e5:98:01:f6:83:2b:51:c9:aa:d8:df:fb:1a:27",
+        ],
+    }
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/beta_to_release.py
@@ -0,0 +1,36 @@
+config = {
+    "log_name": "beta_to_release",
+
+    "branding_dirs": [
+        "mobile/android/config/mozconfigs/android-api-11/",
+        "mobile/android/config/mozconfigs/android-api-9-10-constrained/",
+        "mobile/android/config/mozconfigs/android-x86/",
+    ],
+    "branding_files": ["release", "l10n-release", "l10n-nightly", "nightly"],
+
+    # Disallow sharing, since we want pristine .hg directories.
+    # "vcs_share_base": None,
+    # "hg_share_base": None,
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "from_repo_url": "ssh://hg.mozilla.org/releases/mozilla-beta",
+    "to_repo_url": "ssh://hg.mozilla.org/releases/mozilla-release",
+
+    "base_tag": "FIREFOX_RELEASE_%(major_version)s_BASE",
+    "end_tag": "FIREFOX_RELEASE_%(major_version)s_END",
+
+    "migration_behavior": "beta_to_release",
+    "require_remove_locales": False,
+    "pull_all_branches": True,
+
+    "virtualenv_modules": [
+        "requests==2.2.1",
+    ],
+
+    "post_merge_builders": [
+        "mozilla-release hg bundle",
+    ],
+    "post_merge_nightly_branches": [
+        # No nightlies on mozilla-release
+    ],
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/central_to_aurora.py
@@ -0,0 +1,63 @@
+config = {
+    "log_name": "central_to_aurora",
+
+    "branding_dirs": [
+        "mobile/android/config/mozconfigs/android-api-11/",
+        "mobile/android/config/mozconfigs/android-api-9-10-constrained/",
+        "mobile/android/config/mozconfigs/android-x86/",
+    ],
+    "branding_files": ["debug", "l10n-nightly", "nightly"],
+
+    "profiling_files": [
+        "mobile/android/config/mozconfigs/android-api-11/nightly",
+        "mobile/android/config/mozconfigs/android-api-9-10-constrained/nightly",
+        "mobile/android/config/mozconfigs/android-x86/nightly",
+        "browser/config/mozconfigs/linux32/nightly",
+        "browser/config/mozconfigs/linux64/nightly",
+        "browser/config/mozconfigs/macosx-universal/nightly",
+        "browser/config/mozconfigs/win32/nightly",
+        "browser/config/mozconfigs/win64/nightly"
+    ],
+    "elf_hack_files": [
+        # Not necessary since bug 788974 landed.
+    ],
+    "locale_files": [
+        "browser/locales/shipped-locales",
+        "browser/locales/all-locales",
+        "mobile/android/locales/maemo-locales",
+        "mobile/android/locales/all-locales"
+    ],
+
+    # Disallow sharing, since we want pristine .hg directories.
+    # "vcs_share_base": None,
+    # "hg_share_base": None,
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "from_repo_url": "ssh://hg.mozilla.org/mozilla-central",
+    "to_repo_url": "ssh://hg.mozilla.org/releases/mozilla-aurora",
+
+    "base_tag": "FIREFOX_AURORA_%(major_version)s_BASE",
+    "end_tag": "FIREFOX_AURORA_%(major_version)s_END",
+
+    "migration_behavior": "central_to_aurora",
+
+    "balrog_rules_to_lock": [
+        8,  # Fennec aurora channel
+        10,  # Firefox aurora channel
+        18,  # MetroFirefox aurora channel
+    ],
+    "balrog_credentials_file": "oauth.txt",
+
+    "virtualenv_modules": [
+        "requests==2.2.1",
+    ],
+
+    "post_merge_builders": [
+        "mozilla-aurora hg bundle",
+        "mozilla-central hg bundle",
+    ],
+    "post_merge_nightly_branches": [
+        "mozilla-central",
+        "mozilla-aurora",
+    ],
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/release_to_esr.py
@@ -0,0 +1,26 @@
+NEW_ESR_REPO = "ssh://hg.mozilla.org/releases/mozilla-esr38"
+OLD_ESR_REPO = "https://hg.mozilla.org/releases/mozilla-esr31"
+OLD_ESR_CHANGESET = "450086c0ded0"
+
+config = {
+    "log_name": "relese_to_esr",
+    # Disallow sharing, since we want pristine .hg directories.
+    # "vcs_share_base": None,
+    # "hg_share_base": None,
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "from_repo_url": "ssh://hg.mozilla.org/releases/mozilla-release",
+    "to_repo_url": NEW_ESR_REPO,
+
+    "base_tag": "FIREFOX_ESR_%(major_version)s_BASE",
+    "end_tag": "FIREFOX_ESR_%(major_version)s_END",
+
+    "migration_behavior": "release_to_esr",
+    "require_remove_locales": False,
+    "transplant_patches": [
+        {"repo": OLD_ESR_REPO,
+         "changeset": OLD_ESR_CHANGESET},
+    ],
+    "requires_head_merge": False,
+    "pull_all_branches": True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/staging_beta_migration.py
@@ -0,0 +1,18 @@
+# Use this script in conjunction with aurora_to_beta.py.
+# mozharness/scripts/merge_day/gecko_migration.py -c \
+#   mozharness/configs/merge_day/aurora_to_beta.py -c
+#   mozharness/configs/merge_day/staging_beta_migration.py ...
+
+config = {
+    "log_name": "staging_beta",
+
+    "tools_repo_url": "https://hg.mozilla.org/build/tools",
+    "tools_repo_revision": "default",
+    "from_repo_url": "ssh://hg.mozilla.org/releases/mozilla-aurora",
+    "to_repo_url": "ssh://hg.mozilla.org/users/stage-ffxbld/mozilla-beta",
+
+    "base_tag": "FIREFOX_BETA_%(major_version)s_BASE",
+    "end_tag": "FIREFOX_BETA_%(major_version)s_END",
+
+    "migration_behavior": "aurora_to_beta",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_linux32.py
@@ -0,0 +1,2 @@
+config = {
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_linux64.py
@@ -0,0 +1,2 @@
+config = {
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_macosx64.py
@@ -0,0 +1,2 @@
+config = {
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_win32.py
@@ -0,0 +1,8 @@
+import sys
+
+config = {
+    "exes": {
+        "hg": "c:/mozilla-build/hg/hg",
+        "make": [sys.executable, "%(abs_work_dir)s/build/build/pymake/make.py"],
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-aurora",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-aurora",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-aurora",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-aurora",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-aurora",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-aurora",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android.json
@@ -0,0 +1,29 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-aurora",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-aurora",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-aurora",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android.json
@@ -0,0 +1,29 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/mozilla-central",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "l10n-central",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/mozilla-central",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "l10n-central",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android.json
@@ -0,0 +1,29 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/mozilla-central",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "l10n-central",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json
@@ -0,0 +1,30 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/nightly"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android.json
@@ -0,0 +1,29 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/mobile/android/locales/maemo-locales",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "tag": "default",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "tag": "default",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "tag": "default",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "hg_l10n_tag": "default",
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json
@@ -0,0 +1,31 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-esr_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-esr31.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-esr31",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-esr31",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android.json
@@ -0,0 +1,31 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/build/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+    "required_config_vars": ["tag_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json
@@ -0,0 +1,31 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-beta",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-esr_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-esr31.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-esr31",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/users/stage-ffxbld",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-esr31",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-armv6/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json
@@ -0,0 +1,32 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build",
+    "mozconfig": "build/mobile/android/config/mozconfigs/android-x86/release"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json
@@ -0,0 +1,31 @@
+{
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": "obj-firefox",
+    "locales_file": "build/configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_platform": "android-multilocale",
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
+        "dest": "build"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "dest": "tools"
+    },{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "dest": "build/configs"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s",
+    "required_config_vars": ["tag_override", "user_repo_override"],
+    "l10n_dir": "mozilla-release",
+    "merge_locales": true,
+    "mozilla_dir": "build"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/standalone_mozilla-central.py
@@ -0,0 +1,51 @@
+import os
+# The name of the directory we'll pull our source into.
+BUILD_DIR = "mozilla-central"
+# This is everything that comes after https://hg.mozilla.org/
+# e.g. "releases/mozilla-aurora"
+REPO_PATH = "mozilla-central"
+# This is where the l10n repos are (everything after https://hg.mozilla.org/)
+# for mozilla-central, that's "l10n-central".
+# For mozilla-aurora, that's "releases/l10n/mozilla-aurora"
+L10N_REPO_PATH = "l10n-central"
+# Currently this is assumed to be a subdirectory of your build dir
+OBJDIR = "objdir-droid"
+# Set this to mobile/xul for XUL Fennec
+ANDROID_DIR = "mobile/android"
+# Absolute path to your mozconfig.
+# By default it looks at "./mozconfig"
+MOZCONFIG = os.path.join(os.getcwd(), "mozconfig")
+
+config = {
+    "work_dir": ".",
+    "log_name": "multilocale",
+    "objdir": OBJDIR,
+    "locales_file": "%s/%s/locales/maemo-locales" % (BUILD_DIR, ANDROID_DIR),
+    "locales_dir": "%s/locales" % ANDROID_DIR,
+    "ignore_locales": ["en-US", "multi"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%s" % REPO_PATH,
+        "tag": "default",
+        "dest": BUILD_DIR,
+    }],
+    "l10n_repos": [{
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "tag": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%s" % L10N_REPO_PATH,
+    "hg_l10n_tag": "default",
+    "l10n_dir": "l10n",
+    "merge_locales": True,
+    "mozilla_dir": BUILD_DIR,
+    "mozconfig": MOZCONFIG,
+    "default_actions": [
+        "pull-locale-source",
+        "build",
+        "package-en-US",
+        "backup-objdir",
+        "restore-objdir",
+        "add-locales",
+        "package-multi",
+        "summary",
+    ],
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/partner_repacks/release_mozilla-release_android.py
@@ -0,0 +1,47 @@
+FTP_SERVER = "stage.mozilla.org"
+FTP_USER = "ffxbld"
+FTP_SSH_KEY = "~/.ssh/ffxbld_rsa"
+FTP_UPLOAD_BASE_DIR = "/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d"
+DOWNLOAD_BASE_URL = "http://%s%s" % (FTP_SERVER, FTP_UPLOAD_BASE_DIR)
+APK_BASE_NAME = "fennec-%(version)s.%(locale)s.android-arm.apk"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+KEYSTORE = "/home/cltsign/.android/android-release.keystore"
+KEY_ALIAS = "release"
+
+config = {
+    "log_name": "partner_repack",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+    "additional_locales": ['en-US'],
+    "platforms": ["android"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+    }],
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "ftp_upload_base_dir": FTP_UPLOAD_BASE_DIR,
+    "ftp_ssh_key": FTP_SSH_KEY,
+    "ftp_user": FTP_USER,
+    "ftp_server": FTP_SERVER,
+    "installer_base_names": {
+        "android": APK_BASE_NAME,
+    },
+    "partner_config": {
+        "google-play": {},
+    },
+    "download_unsigned_base_subdir": "unsigned/%(platform)s/%(locale)s",
+    "download_base_url": DOWNLOAD_BASE_URL,
+
+    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-release.py",
+
+    "default_actions": ["clobber", "pull", "download", "repack", "upload-unsigned-bits", "summary"],
+
+    # signing (optional)
+    "keystore": KEYSTORE,
+    "key_alias": KEY_ALIAS,
+    "exes": {
+        # This path doesn't exist and this file probably doesn't work
+        # Comment out to avoid confusion
+#        "jarsigner": "/tools/jdk-1.6.0_17/bin/jarsigner",
+        "zipalign": "/tools/android-sdk-r8/tools/zipalign",
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_android.py
@@ -0,0 +1,52 @@
+FTP_SERVER = "dev-stage01.srv.releng.scl3.mozilla.com"
+FTP_USER = "ffxbld"
+FTP_SSH_KEY = "~/.ssh/ffxbld_rsa"
+FTP_UPLOAD_BASE_DIR = "/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d"
+#DOWNLOAD_BASE_URL = "http://%s%s" % (FTP_SERVER, FTP_UPLOAD_BASE_DIR)
+DOWNLOAD_BASE_URL = "https://ftp-ssl.mozilla.org/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d"
+#DOWNLOAD_BASE_URL = "http://dev-stage01.build.mozilla.org/pub/mozilla.org/mobile/candidates/11.0b1-candidates/build1/"
+APK_BASE_NAME = "fennec-%(version)s.%(locale)s.android-arm.apk"
+#APK_BASE_NAME = "fennec-11.0b1.%(locale)s.android-arm.apk"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+#KEYSTORE = "/home/cltsign/.android/android-release.keystore"
+KEYSTORE = "/home/cltbld/.android/android.keystore"
+#KEY_ALIAS = "release"
+KEY_ALIAS = "nightly"
+
+config = {
+    "log_name": "partner_repack",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+    "additional_locales": ['en-US'],
+    "platforms": ["android"],
+    "repos": [{
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+    }],
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "ftp_upload_base_dir": FTP_UPLOAD_BASE_DIR,
+    "ftp_ssh_key": FTP_SSH_KEY,
+    "ftp_user": FTP_USER,
+    "ftp_server": FTP_SERVER,
+    "installer_base_names": {
+        "android": APK_BASE_NAME,
+    },
+    "partner_config": {
+        "google-play": {},
+    },
+    "download_unsigned_base_subdir": "unsigned/%(platform)s/%(locale)s",
+    "download_base_url": DOWNLOAD_BASE_URL,
+
+    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-release.py",
+
+    "default_actions": ["clobber", "pull", "download", "repack", "upload-unsigned-bits", "summary"],
+
+    # signing (optional)
+    "keystore": KEYSTORE,
+    "key_alias": KEY_ALIAS,
+    "exes": {
+        # This path doesn't exist and this file probably doesn't work
+        # Comment out to avoid confusion
+#        "jarsigner": "/tools/jdk-1.6.0_17/bin/jarsigner",
+        "zipalign": "/tools/android-sdk-r8/tools/zipalign",
+    },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_fennec.py
@@ -0,0 +1,17 @@
+# lint_ignore=E501
+config = {
+    "shipped-locales-url": "https://hg.mozilla.org/%(repo)s/raw-file/%(revision)s/mobile/android/locales/all-locales",    
+    "products": {
+        "installer": {
+            "product-name": "Fennec-%(version)s",
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "android": {
+                    "path": "/mobile/releases/%(version)s/android/:lang/fennec-%(version)s.:lang.android-arm.apk",
+                    "bouncer-platform": "android",
+                },
+            },
+        },
+    },   
+}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_firefox_beta.py
@@ -0,0 +1,131 @@
+# lint_ignore=E501
+config = {
+    "shipped-locales-url": "https://hg.mozilla.org/%(repo)s/raw-file/%(revision)s/browser/locales/shipped-locales",
+    "products": {
+        "installer": {
+            "product-name": "Firefox-%(version)s",
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/linux-i686/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/linux-x86_64/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/mac/:lang/Firefox%%20%(version)s.dmg",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/win64/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+        "installer-ssl": {
+            "product-name": "Firefox-%(version)s-SSL",
+            "ssl-only": True,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/linux-i686/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/linux-x86_64/:lang/firefox-%(version)s.tar.bz2",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/mac/:lang/Firefox%%20%(version)s.dmg",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/win64/:lang/Firefox%%20Setup%%20%(version)s.exe",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+        "stub-installer": {
+            "product-name": "Firefox-%(version)s-stub",
+            "ssl-only": True,
+            "add-locales": True,
+            "paths": {
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20Stub%%20%(version)s.exe",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/win64/:lang/Firefox%%20Setup%%20Stub%%20%(version)s.exe",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+        "complete-mar": {
+            "product-name": "Firefox-%(version)s-Complete",
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "linux64",
+                },
+                "macosx64": {
+                    "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "osx",
+                },
+                "win32": {
+                    "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "win",
+                },
+                "win64": {
+                    "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(version)s.complete.mar",
+                    "bouncer-platform": "win64",
+                },
+            },
+        },
+    },
+    "partials": {
+        "releases-dir": {
+            "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+            "ssl-only": False,
+            "add-locales": True,
+            "paths": {
+                "linux": {
+                    "path": "/firefox/releases/%(version)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+                    "bouncer-platform": "linux",
+                },
+                "linux64": {
+                    "path": "/firefox/r