summaryrefslogtreecommitdiffstats
path: root/testing/mozharness/configs
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozharness/configs')
-rw-r--r--testing/mozharness/configs/android/androidarm.py459
-rw-r--r--testing/mozharness/configs/android/androidarm_4_3-tc.py10
-rw-r--r--testing/mozharness/configs/android/androidarm_4_3.py383
-rw-r--r--testing/mozharness/configs/android/androidarm_dev.py9
-rw-r--r--testing/mozharness/configs/android/androidx86-tc.py73
-rw-r--r--testing/mozharness/configs/android/androidx86.py182
-rw-r--r--testing/mozharness/configs/balrog/docker-worker.py18
-rw-r--r--testing/mozharness/configs/balrog/production.py28
-rw-r--r--testing/mozharness/configs/balrog/staging.py14
-rw-r--r--testing/mozharness/configs/beetmover/en_us_build.yml.tmpl191
-rw-r--r--testing/mozharness/configs/beetmover/en_us_signing.yml.tmpl66
-rw-r--r--testing/mozharness/configs/beetmover/l10n_changesets.tmpl11
-rw-r--r--testing/mozharness/configs/beetmover/partials.yml.tmpl16
-rw-r--r--testing/mozharness/configs/beetmover/repacks.yml.tmpl65
-rw-r--r--testing/mozharness/configs/beetmover/snap.yml.tmpl11
-rw-r--r--testing/mozharness/configs/beetmover/snap_checksums.yml.tmpl14
-rw-r--r--testing/mozharness/configs/beetmover/source.yml.tmpl14
-rw-r--r--testing/mozharness/configs/beetmover/source_checksums.yml.tmpl14
-rw-r--r--testing/mozharness/configs/builds/branch_specifics.py469
-rw-r--r--testing/mozharness/configs/builds/build_pool_specifics.py44
-rw-r--r--testing/mozharness/configs/builds/releng_base_android_64_builds.py111
-rw-r--r--testing/mozharness/configs/builds/releng_base_linux_32_builds.py160
-rw-r--r--testing/mozharness/configs/builds/releng_base_linux_64_builds.py139
-rw-r--r--testing/mozharness/configs/builds/releng_base_mac_64_builds.py79
-rw-r--r--testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py83
-rw-r--r--testing/mozharness/configs/builds/releng_base_windows_32_builds.py95
-rw-r--r--testing/mozharness/configs/builds/releng_base_windows_64_builds.py93
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py8
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py9
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py18
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py21
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py9
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_checkstyle.py11
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_lint.py11
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_test.py11
-rw-r--r--testing/mozharness/configs/builds/releng_sub_android_configs/64_x86.py8
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py116
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py45
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py122
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_add-on-devel.py43
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py98
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py48
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py49
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py48
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py49
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py45
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py45
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py96
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py20
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py50
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_opt.py88
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_tsan.py46
-rw-r--r--testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py49
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_add-on-devel.py44
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py65
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug.py43
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_opt.py39
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_universal.py4
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py44
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py65
-rw-r--r--testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py48
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/32_add-on-devel.py38
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py81
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py40
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py86
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py44
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/64_add-on-devel.py37
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py79
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py39
-rw-r--r--testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py85
-rw-r--r--testing/mozharness/configs/builds/taskcluster_firefox_win32_debug.py91
-rw-r--r--testing/mozharness/configs/builds/taskcluster_firefox_win32_opt.py89
-rw-r--r--testing/mozharness/configs/builds/taskcluster_firefox_win64_debug.py87
-rw-r--r--testing/mozharness/configs/builds/taskcluster_firefox_win64_opt.py85
-rw-r--r--testing/mozharness/configs/developer_config.py49
-rw-r--r--testing/mozharness/configs/disable_signing.py3
-rw-r--r--testing/mozharness/configs/firefox_ui_tests/qa_jenkins.py19
-rw-r--r--testing/mozharness/configs/firefox_ui_tests/releng_release.py33
-rw-r--r--testing/mozharness/configs/firefox_ui_tests/taskcluster.py11
-rw-r--r--testing/mozharness/configs/hazards/build_browser.py4
-rw-r--r--testing/mozharness/configs/hazards/build_shell.py4
-rw-r--r--testing/mozharness/configs/hazards/common.py104
-rw-r--r--testing/mozharness/configs/marionette/prod_config.py56
-rw-r--r--testing/mozharness/configs/marionette/test_config.py29
-rw-r--r--testing/mozharness/configs/marionette/windows_config.py57
-rw-r--r--testing/mozharness/configs/marionette/windows_taskcluster_config.py56
-rw-r--r--testing/mozharness/configs/mediatests/buildbot_posix_config.py50
-rw-r--r--testing/mozharness/configs/mediatests/buildbot_windows_config.py56
-rwxr-xr-xtesting/mozharness/configs/mediatests/jenkins_config.py48
-rw-r--r--testing/mozharness/configs/mediatests/taskcluster_posix_config.py47
-rw-r--r--testing/mozharness/configs/mediatests/taskcluster_windows_config.py50
-rw-r--r--testing/mozharness/configs/merge_day/aurora_to_beta.py83
-rw-r--r--testing/mozharness/configs/merge_day/beta_to_release.py53
-rw-r--r--testing/mozharness/configs/merge_day/bump_esr.py24
-rw-r--r--testing/mozharness/configs/merge_day/central_to_aurora.py100
-rw-r--r--testing/mozharness/configs/merge_day/release_to_esr.py54
-rw-r--r--testing/mozharness/configs/merge_day/staging_beta_migration.py22
-rw-r--r--testing/mozharness/configs/multi_locale/android-mozharness-build.json5
-rw-r--r--testing/mozharness/configs/multi_locale/ash_android-x86.json28
-rw-r--r--testing/mozharness/configs/multi_locale/ash_android.json27
-rw-r--r--testing/mozharness/configs/multi_locale/b2g_linux32.py2
-rw-r--r--testing/mozharness/configs/multi_locale/b2g_linux64.py2
-rw-r--r--testing/mozharness/configs/multi_locale/b2g_macosx64.py2
-rw-r--r--testing/mozharness/configs/multi_locale/b2g_win32.py8
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-aurora_android.json27
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-beta_android.json27
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-central_android.json27
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json28
-rw-r--r--testing/mozharness/configs/multi_locale/mozilla-release_android.json27
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json34
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json34
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json33
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json34
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json34
-rw-r--r--testing/mozharness/configs/multi_locale/release_mozilla-release_android.json33
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json34
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json34
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json33
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json34
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json34
-rw-r--r--testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json33
-rw-r--r--testing/mozharness/configs/multi_locale/standalone_mozilla-central.py49
-rw-r--r--testing/mozharness/configs/partner_repacks/release_mozilla-esr52_desktop.py6
-rw-r--r--testing/mozharness/configs/partner_repacks/release_mozilla-release_android.py47
-rw-r--r--testing/mozharness/configs/partner_repacks/release_mozilla-release_desktop.py6
-rw-r--r--testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_android.py52
-rw-r--r--testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_desktop.py6
-rw-r--r--testing/mozharness/configs/platform_supports_post_upload_to_latest.py3
-rw-r--r--testing/mozharness/configs/releases/bouncer_fennec.py22
-rw-r--r--testing/mozharness/configs/releases/bouncer_firefox_beta.py148
-rw-r--r--testing/mozharness/configs/releases/bouncer_firefox_esr.py136
-rw-r--r--testing/mozharness/configs/releases/bouncer_firefox_release.py191
-rw-r--r--testing/mozharness/configs/releases/bouncer_thunderbird.py169
-rw-r--r--testing/mozharness/configs/releases/dev_bouncer_firefox_beta.py133
-rw-r--r--testing/mozharness/configs/releases/dev_postrelease_firefox_beta.py20
-rw-r--r--testing/mozharness/configs/releases/dev_postrelease_firefox_release.py22
-rw-r--r--testing/mozharness/configs/releases/dev_updates_firefox_beta.py39
-rw-r--r--testing/mozharness/configs/releases/dev_updates_firefox_release.py50
-rw-r--r--testing/mozharness/configs/releases/postrelease_firefox_beta.py18
-rw-r--r--testing/mozharness/configs/releases/postrelease_firefox_esr52.py22
-rw-r--r--testing/mozharness/configs/releases/postrelease_firefox_release.py22
-rw-r--r--testing/mozharness/configs/releases/updates_firefox_beta.py35
-rw-r--r--testing/mozharness/configs/releases/updates_firefox_esr52.py35
-rw-r--r--testing/mozharness/configs/releases/updates_firefox_release.py47
-rw-r--r--testing/mozharness/configs/releng_infra_configs/builders.py47
-rw-r--r--testing/mozharness/configs/releng_infra_configs/linux.py5
-rw-r--r--testing/mozharness/configs/releng_infra_configs/linux64.py5
-rw-r--r--testing/mozharness/configs/releng_infra_configs/macosx64.py5
-rw-r--r--testing/mozharness/configs/releng_infra_configs/testers.py67
-rw-r--r--testing/mozharness/configs/releng_infra_configs/win32.py5
-rw-r--r--testing/mozharness/configs/releng_infra_configs/win64.py5
-rw-r--r--testing/mozharness/configs/remove_executables.py8
-rw-r--r--testing/mozharness/configs/routes.json18
-rw-r--r--testing/mozharness/configs/selfserve/production.py3
-rw-r--r--testing/mozharness/configs/selfserve/staging.py3
-rw-r--r--testing/mozharness/configs/servo/mac.py3
-rw-r--r--testing/mozharness/configs/single_locale/alder.py46
-rw-r--r--testing/mozharness/configs/single_locale/ash.py46
-rw-r--r--testing/mozharness/configs/single_locale/ash_android-api-15.py97
-rw-r--r--testing/mozharness/configs/single_locale/dev-mozilla-beta.py37
-rw-r--r--testing/mozharness/configs/single_locale/dev-mozilla-release.py37
-rw-r--r--testing/mozharness/configs/single_locale/linux.py123
l---------testing/mozharness/configs/single_locale/linux32.py1
-rw-r--r--testing/mozharness/configs/single_locale/linux64.py103
-rw-r--r--testing/mozharness/configs/single_locale/macosx64.py72
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-aurora.py29
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py97
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-beta.py37
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-central.py29
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py97
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-esr52.py37
-rw-r--r--testing/mozharness/configs/single_locale/mozilla-release.py37
-rw-r--r--testing/mozharness/configs/single_locale/production.py14
-rw-r--r--testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py97
-rw-r--r--testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py97
-rw-r--r--testing/mozharness/configs/single_locale/staging.py17
-rw-r--r--testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py97
-rw-r--r--testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py97
-rw-r--r--testing/mozharness/configs/single_locale/tc_android-api-15.py18
-rw-r--r--testing/mozharness/configs/single_locale/tc_linux32.py24
-rw-r--r--testing/mozharness/configs/single_locale/tc_linux64.py24
-rw-r--r--testing/mozharness/configs/single_locale/try.py42
-rw-r--r--testing/mozharness/configs/single_locale/try_android-api-15.py97
-rw-r--r--testing/mozharness/configs/single_locale/win32.py77
-rw-r--r--testing/mozharness/configs/single_locale/win64.py77
-rw-r--r--testing/mozharness/configs/talos/linux_config.py46
-rw-r--r--testing/mozharness/configs/talos/mac_config.py56
-rw-r--r--testing/mozharness/configs/talos/windows_config.py48
-rw-r--r--testing/mozharness/configs/taskcluster_nightly.py5
-rw-r--r--testing/mozharness/configs/test/example_config1.json5
-rw-r--r--testing/mozharness/configs/test/example_config2.py5
-rw-r--r--testing/mozharness/configs/test/test.illegal_suffix20
-rw-r--r--testing/mozharness/configs/test/test.json20
-rw-r--r--testing/mozharness/configs/test/test.py22
-rw-r--r--testing/mozharness/configs/test/test_malformed.json20
-rw-r--r--testing/mozharness/configs/test/test_malformed.py22
-rw-r--r--testing/mozharness/configs/test/test_optional.py4
-rw-r--r--testing/mozharness/configs/test/test_override.py7
-rw-r--r--testing/mozharness/configs/test/test_override2.py6
-rw-r--r--testing/mozharness/configs/unittests/linux_unittest.py306
-rw-r--r--testing/mozharness/configs/unittests/mac_unittest.py257
-rw-r--r--testing/mozharness/configs/unittests/thunderbird_extra.py17
-rw-r--r--testing/mozharness/configs/unittests/win_taskcluster_unittest.py274
-rw-r--r--testing/mozharness/configs/unittests/win_unittest.py281
-rw-r--r--testing/mozharness/configs/users/aki/gaia_json.py42
-rw-r--r--testing/mozharness/configs/users/sfink/mock.py3
-rw-r--r--testing/mozharness/configs/users/sfink/spidermonkey.py38
-rw-r--r--testing/mozharness/configs/web_platform_tests/prod_config.py47
-rw-r--r--testing/mozharness/configs/web_platform_tests/prod_config_windows.py48
-rw-r--r--testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py48
-rw-r--r--testing/mozharness/configs/web_platform_tests/test_config.py32
-rw-r--r--testing/mozharness/configs/web_platform_tests/test_config_windows.py43
219 files changed, 11946 insertions, 0 deletions
diff --git a/testing/mozharness/configs/android/androidarm.py b/testing/mozharness/configs/android/androidarm.py
new file mode 100644
index 000000000..fc4f742dc
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm.py
@@ -0,0 +1,459 @@
+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",
+ "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-emulator',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'verify-emulator',
+ 'install',
+ 'run-tests',
+ ],
+ "emulator": {
+ "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
+ },
+ "suite_definitions": {
+ "mochitest": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=sut",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "--screenshot-on-fail",
+ ],
+ },
+ "mochitest-gl": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=sut",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--total-chunks=4",
+ "--subsuite=webgl",
+ ],
+ },
+ "mochitest-media": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=sut",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--total-chunks=2",
+ "--subsuite=media",
+ ],
+ },
+ "robocop": {
+ "run_filename": "runrobocop.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=sut",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--total-chunks=4",
+ "--robocop-apk=../../robocop.apk",
+ "--robocop-ini=robocop.ini",
+ ],
+ },
+ "reftest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path",
+ "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=16",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "--suite=reftest",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ ],
+ "tests": ["tests/layout/reftests/reftest.list"],
+ },
+ "crashtest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path",
+ "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=2",
+ "--suite=crashtest",
+ ],
+ "tests": ["tests/testing/crashtest/crashtests.list"],
+ },
+ "jsreftest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path",
+ "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=6",
+ "--extra-profile-file=jsreftest/tests/user.js",
+ "--suite=jstestbrowser",
+ ],
+ "tests": ["../jsreftest/tests/jstests.list"],
+ },
+ "xpcshell": {
+ "run_filename": "remotexpcshelltests.py",
+ "testsdir": "xpcshell",
+ "options": [
+ "--dm_trans=sut",
+ "--deviceIP=%(device_ip)s",
+ "--devicePort=%(device_port)s",
+ "--xre-path=%(xre_path)s",
+ "--testing-modules-dir=%(modules_dir)s",
+ "--apk=%(installer_path)s",
+ "--no-logfiles",
+ "--symbols-path=%(symbols_path)s",
+ "--manifest=tests/xpcshell.ini",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--total-chunks=3",
+ ],
+ },
+ }, # end suite_definitions
+ "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-chrome": {
+ "category": "mochitest",
+ "extra_args": ["--flavor=chrome"],
+ },
+ "mochitest-media-1": {
+ "category": "mochitest-media",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "mochitest-media-2": {
+ "category": "mochitest-media",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "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"],
+ },
+ "reftest-2": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=2"],
+ },
+ "reftest-3": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=3"],
+ },
+ "reftest-4": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=4"],
+ },
+ "reftest-5": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=5"],
+ },
+ "reftest-6": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=6"],
+ },
+ "reftest-7": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=7"],
+ },
+ "reftest-8": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=8"],
+ },
+ "reftest-9": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=9"],
+ },
+ "reftest-10": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=10"],
+ },
+ "reftest-11": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=11"],
+ },
+ "reftest-12": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=12"],
+ },
+ "reftest-13": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=13"],
+ },
+ "reftest-14": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=14"],
+ },
+ "reftest-15": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=15"],
+ },
+ "reftest-16": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=16"],
+ },
+ "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"
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
diff --git a/testing/mozharness/configs/android/androidarm_4_3-tc.py b/testing/mozharness/configs/android/androidarm_4_3-tc.py
new file mode 100644
index 000000000..dd87e6695
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_4_3-tc.py
@@ -0,0 +1,10 @@
+config = {
+ # Additional Android 4.3 settings required when running in taskcluster.
+ "avds_dir": "/home/worker/workspace/build/.android",
+ "tooltool_cache": "/home/worker/tooltool_cache",
+ "download_tooltool": True,
+ "tooltool_servers": ['http://relengapi/tooltool/'],
+ "exes": {
+ 'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+ }
+}
diff --git a/testing/mozharness/configs/android/androidarm_4_3.py b/testing/mozharness/configs/android/androidarm_4_3.py
new file mode 100644
index 000000000..bae25fecc
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_4_3.py
@@ -0,0 +1,383 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest",
+ "robocop_package_name": "org.mozilla.roboexample.test",
+ "marionette_address": "localhost:2828",
+ "marionette_test_manifest": "unit-tests.ini",
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidarm_4_3/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ "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": "-show-kernel -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-emulator',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'verify-emulator',
+ 'install',
+ 'run-tests',
+ ],
+ "emulator": {
+ "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,
+ },
+ "suite_definitions": {
+ "mochitest": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "--screenshot-on-fail",
+ "--total-chunks=20",
+ ],
+ },
+ "mochitest-gl": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--total-chunks=10",
+ "--subsuite=webgl",
+ ],
+ },
+ "mochitest-chrome": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "--screenshot-on-fail",
+ "--flavor=chrome",
+ ],
+ },
+ "mochitest-plain-gpu": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--subsuite=gpu",
+ ],
+ },
+ "mochitest-plain-clipboard": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--subsuite=clipboard",
+ ],
+ },
+ "mochitest-media": {
+ "run_filename": "runtestsremote.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--chunk-by-runtime",
+ "--total-chunks=2",
+ "--subsuite=media",
+ ],
+ },
+ "robocop": {
+ "run_filename": "runrobocop.py",
+ "testsdir": "mochitest",
+ "options": [
+ "--dm_trans=adb",
+ "--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--total-chunks=4",
+ "--robocop-apk=../../robocop.apk",
+ "--robocop-ini=robocop.ini",
+ ],
+ },
+ "reftest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path", "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=16",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "--suite=reftest",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ ],
+ "tests": ["tests/layout/reftests/reftest.list",],
+ },
+ "reftest-debug": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path", "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=48",
+ "--extra-profile-file=fonts",
+ "--extra-profile-file=hyphenation",
+ "tests/layout/reftests/reftest.list",
+ ],
+ },
+ "crashtest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path",
+ "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=4",
+ "--suite=crashtest",
+ ],
+ "tests": ["tests/testing/crashtest/crashtests.list",],
+ },
+ "crashtest-debug": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path",
+ "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=10",
+ "tests/testing/crashtest/crashtests.list",
+ ],
+ },
+ "jsreftest": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s", "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--total-chunks=6",
+ "--extra-profile-file=jsreftest/tests/user.js",
+ "--suite=jstestbrowser",
+ ],
+ "tests": ["../jsreftest/tests/jstests.list",],
+ },
+ "jsreftest-debug": {
+ "run_filename": "remotereftest.py",
+ "testsdir": "reftest",
+ "options": [
+ "--app=%(app)s",
+ "--ignore-window-size",
+ "--dm_trans=adb",
+ "--remote-webserver=%(remote_webserver)s", "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s", "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s", "--httpd-path", "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "../jsreftest/tests/jstests.list",
+ "--total-chunks=20",
+ "--extra-profile-file=jsreftest/tests/user.js",
+ ],
+ },
+ "xpcshell": {
+ "run_filename": "remotexpcshelltests.py",
+ "testsdir": "xpcshell",
+ "install": False,
+ "options": [
+ "--dm_trans=adb",
+ "--xre-path=%(xre_path)s",
+ "--testing-modules-dir=%(modules_dir)s",
+ "--apk=%(installer_path)s",
+ "--no-logfiles",
+ "--symbols-path=%(symbols_path)s",
+ "--manifest=tests/xpcshell.ini",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--test-plugin-path=none",
+ "--total-chunks=3",
+ ],
+ },
+ "cppunittest": {
+ "run_filename": "remotecppunittests.py",
+ "testsdir": "cppunittest",
+ "install": False,
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--xre-path=%(xre_path)s",
+ "--dm_trans=adb",
+ "--localBinDir=../bin",
+ "--apk=%(installer_path)s",
+ ".",
+ ],
+ },
+ "marionette": {
+ "run_filename": os.path.join("harness", "marionette_harness", "runtests.py"),
+ "testsdir": "marionette",
+ "options": [
+ "--emulator",
+ "--app=fennec",
+ "--package=%(app)s",
+ "--address=%(address)s",
+ "%(test_manifest)s",
+ "--disable-e10s",
+ "--gecko-log=%(gecko_log)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--symbols-path=%(symbols_path)s",
+ "--startup-timeout=300",
+ ],
+ },
+
+ }, # end suite_definitions
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+}
diff --git a/testing/mozharness/configs/android/androidarm_dev.py b/testing/mozharness/configs/android/androidarm_dev.py
new file mode 100644
index 000000000..e4de6a9f2
--- /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"),
+}
diff --git a/testing/mozharness/configs/android/androidx86-tc.py b/testing/mozharness/configs/android/androidx86-tc.py
new file mode 100644
index 000000000..8141b77f6
--- /dev/null
+++ b/testing/mozharness/configs/android/androidx86-tc.py
@@ -0,0 +1,73 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest",
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidx86/releng.manifest",
+ "tooltool_cache": "/home/worker/tooltool_cache",
+ "download_tooltool": True,
+ "tooltool_servers": ['http://relengapi/tooltool/'],
+ "avds_dir": "/home/worker/workspace/build/.android",
+ "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": "-show-kernel -debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket -qemu -m 1024",
+ "device_manager": "adb",
+ "exes": {
+ 'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+ },
+ "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-emulator',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'verify-emulator',
+ 'run-tests',
+ ],
+ "emulator": {
+ "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,
+ },
+ "suite_definitions": {
+ "xpcshell": {
+ "run_filename": "remotexpcshelltests.py",
+ "testsdir": "xpcshell",
+ "install": False,
+ "options": [
+ "--dm_trans=adb",
+ "--xre-path=%(xre_path)s",
+ "--testing-modules-dir=%(modules_dir)s",
+ "--apk=%(installer_path)s",
+ "--no-logfiles",
+ "--symbols-path=%(symbols_path)s",
+ "--manifest=tests/xpcshell.ini",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--test-plugin-path=none",
+ ],
+ },
+ }, # end suite_definitions
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+}
diff --git a/testing/mozharness/configs/android/androidx86.py b/testing/mozharness/configs/android/androidx86.py
new file mode 100644
index 000000000..e74551d0a
--- /dev/null
+++ b/testing/mozharness/configs/android/androidx86.py
@@ -0,0 +1,182 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest",
+ "robocop_package_name": "org.mozilla.roboexample.test",
+ "device_ip": "127.0.0.1",
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidx86/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ "avds_dir": "/home/cltbld/.android",
+ "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": "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-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,
+ },
+ {
+ "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,
+ },
+ {
+ "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,
+ },
+ {
+ "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,
+ }
+ ],
+ "suite_definitions": {
+ "mochitest": {
+ "run_filename": "runtestsremote.py",
+ "options": ["--app=%(app)s",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--certificate-path=%(certs_path)s",
+ "--symbols-path=%(symbols_path)s",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ ],
+ },
+ "reftest": {
+ "run_filename": "remotereftest.py",
+ "options": ["--app=%(app)s",
+ "--ignore-window-size",
+ "--remote-webserver=%(remote_webserver)s",
+ "--xre-path=%(xre_path)s",
+ "--utility-path=%(utility_path)s",
+ "--http-port=%(http_port)s",
+ "--ssl-port=%(ssl_port)s",
+ "--httpd-path", "%(modules_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ ],
+ },
+ "xpcshell": {
+ "run_filename": "remotexpcshelltests.py",
+ "options": ["--xre-path=%(xre_path)s",
+ "--testing-modules-dir=%(modules_dir)s",
+ "--apk=%(installer_path)s",
+ "--no-logfiles",
+ "--symbols-path=%(symbols_path)s",
+ "--manifest=tests/xpcshell.ini",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--test-plugin-path=none",
+ ],
+ },
+ }, # end suite_definitions
+ "test_suite_definitions": {
+ "jsreftest": {
+ "category": "reftest",
+ "tests": ["../jsreftest/tests/jstests.list"],
+ "extra_args": [
+ "--suite=jstestbrowser",
+ "--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": [
+ "--suite=reftest",
+ "--total-chunks=3",
+ "--this-chunk=1",
+ ],
+ "tests": ["tests/layout/reftests/reftest.list"],
+ },
+ "reftest-2": {
+ "extra_args": [
+ "--suite=reftest",
+ "--total-chunks=3",
+ "--this-chunk=2",
+ ],
+ "tests": ["tests/layout/reftests/reftest.list"],
+ },
+ "reftest-3": {
+ "extra_args": [
+ "--suite=reftest",
+ "--total-chunks=3",
+ "--this-chunk=3",
+ ],
+ "tests": ["tests/layout/reftests/reftest.list"],
+ },
+ "crashtest": {
+ "category": "reftest",
+ "extra_args": ["--suite=crashtest"],
+ "tests": ["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"
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
diff --git a/testing/mozharness/configs/balrog/docker-worker.py b/testing/mozharness/configs/balrog/docker-worker.py
new file mode 100644
index 000000000..1ff1c2ac5
--- /dev/null
+++ b/testing/mozharness/configs/balrog/docker-worker.py
@@ -0,0 +1,18 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'http://balrog/api',
+ 'ignore_failures': False,
+ 'url_replacements': [
+ ('http://archive.mozilla.org/pub', 'http://download.cdn.mozilla.net/pub'),
+ ],
+ 'balrog_usernames': {
+ 'firefox': 'ffxbld',
+ 'thunderbird': 'tbirdbld',
+ 'mobile': 'ffxbld',
+ 'Fennec': 'ffxbld',
+ }
+ }
+ ]
+}
+
diff --git a/testing/mozharness/configs/balrog/production.py b/testing/mozharness/configs/balrog/production.py
new file mode 100644
index 000000000..a727f77d1
--- /dev/null
+++ b/testing/mozharness/configs/balrog/production.py
@@ -0,0 +1,28 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'https://aus4-admin.mozilla.org/api',
+ 'ignore_failures': False,
+ 'url_replacements': [
+ ('http://archive.mozilla.org/pub', 'http://download.cdn.mozilla.net/pub'),
+ ],
+ 'balrog_usernames': {
+ 'firefox': 'ffxbld',
+ 'thunderbird': 'tbirdbld',
+ 'mobile': 'ffxbld',
+ 'Fennec': 'ffxbld',
+ }
+ },
+ # Bug 1261346 - temporarily disable staging balrog submissions
+ # {
+ # 'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+ # 'ignore_failures': True,
+ # 'balrog_usernames': {
+ # 'firefox': 'stage-ffxbld',
+ # 'thunderbird': 'stage-tbirdbld',
+ # 'mobile': 'stage-ffxbld',
+ # 'Fennec': 'stage-ffxbld',
+ # }
+ # }
+ ]
+}
diff --git a/testing/mozharness/configs/balrog/staging.py b/testing/mozharness/configs/balrog/staging.py
new file mode 100644
index 000000000..919974122
--- /dev/null
+++ b/testing/mozharness/configs/balrog/staging.py
@@ -0,0 +1,14 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+ 'ignore_failures': False,
+ 'balrog_usernames': {
+ 'firefox': 'stage-ffxbld',
+ 'thunderbird': 'stage-tbirdbld',
+ 'mobile': 'stage-ffxbld',
+ 'Fennec': 'stage-ffxbld',
+ }
+ }
+ ]
+}
diff --git a/testing/mozharness/configs/beetmover/en_us_build.yml.tmpl b/testing/mozharness/configs/beetmover/en_us_build.yml.tmpl
new file mode 100644
index 000000000..33287b042
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/en_us_build.yml.tmpl
@@ -0,0 +1,191 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for the en-US locale"
+ owner: "release@mozilla.com"
+
+mapping:
+{% for locale in locales %}
+ {{ locale }}:
+
+ {% if platform == "win32" %}
+ buildinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.json
+ mozinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.mozinfo.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.mozinfo.json
+ socorroinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.txt
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.txt
+ jsshell:
+ artifact: {{ artifact_base_url }}/jsshell-{{ platform }}.zip
+ s3_key: {{ s3_prefix }}jsshell-{{ platform }}.zip
+ mozharness_package:
+ artifact: {{ artifact_base_url }}/mozharness.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/mozharness.zip
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+ symbols:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.crashreporter-symbols.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.crashreporter-symbols.zip
+ buildid_info:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}_info.txt
+ s3_key: {{ s3_prefix }}win32_info.txt
+ sdk:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.sdk.zip
+ s3_key: {{ s3_prefix }}firefox-{{ version }}.{{ platform }}.sdk.zip
+ mar_tools_mar:
+ artifact: {{ artifact_base_url }}/mar.exe
+ s3_key: {{ s3_prefix }}mar-tools/win32/mar.exe
+ mar_tools_mbdiff:
+ artifact: {{ artifact_base_url }}/mbsdiff.exe
+ s3_key: {{ s3_prefix }}mar-tools/win32/mbsdiff.exe
+ {% endif %}
+
+ {% if platform == "win64" %}
+ buildinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.json
+ mozinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.mozinfo.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.mozinfo.json
+ socorroinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.txt
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.txt
+ jsshell:
+ artifact: {{ artifact_base_url }}/jsshell-{{ platform }}.zip
+ s3_key: {{ s3_prefix }}jsshell-{{ platform }}.zip
+ mozharness_package:
+ artifact: {{ artifact_base_url }}/mozharness.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/mozharness.zip
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+ symbols:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.crashreporter-symbols.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.crashreporter-symbols.zip
+ buildid_info:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}_info.txt
+ s3_key: {{ s3_prefix }}win64_info.txt
+ sdk:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.sdk.zip
+ s3_key: {{ s3_prefix }}firefox-{{ version }}.{{ platform }}.sdk.zip
+ mar_tools_mar:
+ artifact: {{ artifact_base_url }}/mar.exe
+ s3_key: {{ s3_prefix }}mar-tools/win64/mar.exe
+ mar_tools_mbdiff:
+ artifact: {{ artifact_base_url }}/mbsdiff.exe
+ s3_key: {{ s3_prefix }}mar-tools/win64/mbsdiff.exe
+ {% endif %}
+
+ {% if platform == "linux-i686" %}
+ buildinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.json
+ mozinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.mozinfo.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.mozinfo.json
+ socorroinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.txt
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.txt
+ jsshell:
+ artifact: {{ artifact_base_url }}/jsshell-{{ platform }}.zip
+ s3_key: {{ s3_prefix }}jsshell-{{ platform }}.zip
+ mozharness_package:
+ artifact: {{ artifact_base_url }}/mozharness.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/mozharness.zip
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+ symbols:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.crashreporter-symbols.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.crashreporter-symbols.zip
+ buildid_info:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}_info.txt
+ s3_key: {{ s3_prefix }}linux_info.txt
+ sdk:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.sdk.tar.bz2
+ s3_key: {{ s3_prefix }}firefox-{{ version }}.{{ platform }}.sdk.tar.bz2
+ mar_tools_mar:
+ artifact: {{ artifact_base_url }}/mar
+ s3_key: {{ s3_prefix }}mar-tools/linux/mar
+ mar_tools_mbdiff:
+ artifact: {{ artifact_base_url }}/mbsdiff
+ s3_key: {{ s3_prefix }}mar-tools/linux/mbsdiff
+ {% endif %}
+
+ {% if platform == "linux-x86_64" %}
+ buildinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.json
+ mozinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.mozinfo.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.mozinfo.json
+ socorroinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.txt
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.txt
+ jsshell:
+ artifact: {{ artifact_base_url }}/jsshell-{{ platform }}.zip
+ s3_key: {{ s3_prefix }}jsshell-{{ platform }}.zip
+ mozharness_package:
+ artifact: {{ artifact_base_url }}/mozharness.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/mozharness.zip
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+ symbols:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.crashreporter-symbols.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.crashreporter-symbols.zip
+ buildid_info:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}_info.txt
+ s3_key: {{ s3_prefix }}linux64_info.txt
+ sdk:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.sdk.tar.bz2
+ s3_key: {{ s3_prefix }}firefox-{{ version }}.{{ platform }}.sdk.tar.bz2
+ mar_tools_mar:
+ artifact: {{ artifact_base_url }}/mar
+ s3_key: {{ s3_prefix }}mar-tools/linux64/mar
+ mar_tools_mbdiff:
+ artifact: {{ artifact_base_url }}/mbsdiff
+ s3_key: {{ s3_prefix }}mar-tools/linux64/mbsdiff
+ {% endif %}
+
+ {% if platform == "mac" %}
+ buildinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.json
+ mozinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.mozinfo.json
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.mozinfo.json
+ socorroinfo:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.txt
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.txt
+ jsshell:
+ artifact: {{ artifact_base_url }}/jsshell-{{ platform }}.zip
+ s3_key: {{ s3_prefix }}jsshell-{{ platform }}.zip
+ mozharness_package:
+ artifact: {{ artifact_base_url }}/mozharness.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/mozharness.zip
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+ symbols:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.crashreporter-symbols.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox {{ version }}.crashreporter-symbols.zip
+ buildid_info:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}_info.txt
+ s3_key: {{ s3_prefix }}macosx64_info.txt
+ sdk:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}-x86_64.sdk.tar.bz2
+ s3_key: {{ s3_prefix }}firefox-{{ version }}.{{ platform }}-x86_64.sdk.tar.bz2
+ mar_tools_mar:
+ artifact: {{ artifact_base_url }}/mar
+ s3_key: {{ s3_prefix }}mar-tools/macosx64/mar
+ mar_tools_mbdiff:
+ artifact: {{ artifact_base_url }}/mbsdiff
+ s3_key: {{ s3_prefix }}mar-tools/macosx64/mbsdiff
+ {% endif %}
+
+{% endfor %}
diff --git a/testing/mozharness/configs/beetmover/en_us_signing.yml.tmpl b/testing/mozharness/configs/beetmover/en_us_signing.yml.tmpl
new file mode 100644
index 000000000..54fc2c792
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/en_us_signing.yml.tmpl
@@ -0,0 +1,66 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for the en-US locale"
+ owner: "release@mozilla.com"
+
+mapping:
+{% for locale in locales %}
+ {{ locale }}:
+ {% if platform == "win32" %}
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ full_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup {{ version }}.exe
+ {% if "esr" not in version %}
+ stub_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer-stub.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup Stub {{ version }}.exe
+ {% endif %}
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.zip
+ {% endif %}
+
+ {% if platform == "win64" %}
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ full_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup {{ version }}.exe
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.zip
+ {% endif %}
+
+ {% if platform == "linux-i686" %}
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.tar.bz2
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.tar.bz2
+ {% endif %}
+
+ {% if platform == "linux-x86_64" %}
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.tar.bz2
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.tar.bz2
+ {% endif %}
+
+ {% if platform == "mac" %}
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.dmg
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox {{ version }}.dmg
+ {% endif %}
+
+{% endfor %}
diff --git a/testing/mozharness/configs/beetmover/l10n_changesets.tmpl b/testing/mozharness/configs/beetmover/l10n_changesets.tmpl
new file mode 100644
index 000000000..bde4bc8a7
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/l10n_changesets.tmpl
@@ -0,0 +1,11 @@
+---
+metadata:
+ name: "Beet Mover L10N Changesets"
+ description: "Maps artifact locations to s3 key names for L10N changesets"
+ owner: "release@mozilla.com"
+
+mapping:
+ all:
+ l10n_changesets:
+ artifact: {{ artifact_base_url }}/l10n_changesets.txt
+ s3_key: {{ s3_prefix }}l10n_changesets.txt
diff --git a/testing/mozharness/configs/beetmover/partials.yml.tmpl b/testing/mozharness/configs/beetmover/partials.yml.tmpl
new file mode 100644
index 000000000..a97ac42c0
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/partials.yml.tmpl
@@ -0,0 +1,16 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for partials"
+ owner: "release@mozilla.com"
+
+mapping:
+{% for locale in locales %}
+ {{ locale }}:
+ partial_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ partial_version }}-{{ version }}.{{ locale }}.{{ platform }}.partial.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ partial_version }}-{{ version }}.partial.mar
+ partial_mar_sig:
+ artifact: {{ artifact_base_url }}/firefox-{{ partial_version }}-{{ version }}.{{ locale }}.{{ platform }}.partial.mar.asc
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ partial_version }}-{{ version }}.partial.mar.asc
+{% endfor %}
diff --git a/testing/mozharness/configs/beetmover/repacks.yml.tmpl b/testing/mozharness/configs/beetmover/repacks.yml.tmpl
new file mode 100644
index 000000000..c275ff3e8
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/repacks.yml.tmpl
@@ -0,0 +1,65 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for the non en-US locales"
+ owner: "release@mozilla.com"
+
+mapping:
+{% for locale in locales %}
+ # common deliverables
+ {{ locale }}:
+ complete_mar:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.complete.mar
+ s3_key: {{ s3_prefix }}update/{{ platform }}/{{ locale }}/firefox-{{ version }}.complete.mar
+ checksum:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.checksums
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.checksums
+ checksum_sig:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.checksums.asc
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.checksums.asc
+ xpi:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.langpack.xpi
+ s3_key: {{ s3_prefix }}{{ platform }}/xpi/{{ locale }}.xpi
+
+ {% if platform == "win32" %}
+ full_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup {{ version }}.exe
+ {% if "esr" not in version %}
+ stub_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer-stub.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup Stub {{ version }}.exe
+ {% endif %}
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.zip
+ {% endif %}
+
+ {% if platform == "win64" %}
+ full_installer:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.installer.exe
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox Setup {{ version }}.exe
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.zip
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.zip
+ {% endif %}
+
+ {% if platform == "linux-i686" %}
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.tar.bz2
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.tar.bz2
+ {% endif %}
+
+ {% if platform == "linux-x86_64" %}
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.tar.bz2
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/firefox-{{ version }}.tar.bz2
+ {% endif %}
+
+ {% if platform == "mac" %}
+ package:
+ artifact: {{ artifact_base_url }}/firefox-{{ app_version }}.{{ locale }}.{{ platform }}.dmg
+ s3_key: {{ s3_prefix }}{{ platform }}/{{ locale }}/Firefox {{ version }}.dmg
+ {% endif %}
+
+{% endfor %}
diff --git a/testing/mozharness/configs/beetmover/snap.yml.tmpl b/testing/mozharness/configs/beetmover/snap.yml.tmpl
new file mode 100644
index 000000000..afc8f35ce
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/snap.yml.tmpl
@@ -0,0 +1,11 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for snap iamge"
+ owner: "release@mozilla.com"
+
+mapping:
+ all:
+ snap:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.snap
+ s3_key: {{ s3_prefix }}snap/firefox-{{ version }}.snap
diff --git a/testing/mozharness/configs/beetmover/snap_checksums.yml.tmpl b/testing/mozharness/configs/beetmover/snap_checksums.yml.tmpl
new file mode 100644
index 000000000..aa905d38d
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/snap_checksums.yml.tmpl
@@ -0,0 +1,14 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for snap checksums"
+ owner: "release@mozilla.com"
+
+mapping:
+ all:
+ snap_checksum:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.snap.checksums
+ s3_key: {{ s3_prefix }}snap/firefox-{{ version }}.snap.checksums
+ snap_checksum_asc:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.snap.checksums.asc
+ s3_key: {{ s3_prefix }}snap/firefox-{{ version }}.snap.checksums.asc
diff --git a/testing/mozharness/configs/beetmover/source.yml.tmpl b/testing/mozharness/configs/beetmover/source.yml.tmpl
new file mode 100644
index 000000000..f991f257c
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/source.yml.tmpl
@@ -0,0 +1,14 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for source bundles"
+ owner: "release@mozilla.com"
+
+mapping:
+ all:
+ source_bundle:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.bundle
+ s3_key: {{ s3_prefix }}source/firefox-{{ version }}.bundle
+ source_tar:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.source.tar.xz
+ s3_key: {{ s3_prefix }}source/firefox-{{ version }}.source.tar.xz
diff --git a/testing/mozharness/configs/beetmover/source_checksums.yml.tmpl b/testing/mozharness/configs/beetmover/source_checksums.yml.tmpl
new file mode 100644
index 000000000..0dd228c24
--- /dev/null
+++ b/testing/mozharness/configs/beetmover/source_checksums.yml.tmpl
@@ -0,0 +1,14 @@
+---
+metadata:
+ name: "Beet Mover Manifest"
+ description: "Maps artifact locations to s3 key names for source bundle checksums"
+ owner: "release@mozilla.com"
+
+mapping:
+ all:
+ source_checksum:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.source.checksums
+ s3_key: {{ s3_prefix }}source/firefox-{{ version }}.source.checksums
+ source_checksum_asc:
+ artifact: {{ artifact_base_url }}/firefox-{{ version }}.source.checksums.asc
+ s3_key: {{ s3_prefix }}source/firefox-{{ version }}.source.checksums.asc
diff --git a/testing/mozharness/configs/builds/branch_specifics.py b/testing/mozharness/configs/builds/branch_specifics.py
new file mode 100644
index 000000000..43f14c5ad
--- /dev/null
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -0,0 +1,469 @@
+# 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",
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'mozilla-release': {
+ 'enable_release_promotion': True,
+ 'repo_path': 'releases/mozilla-release',
+ 'update_channel': 'release',
+ 'branch_uses_per_checkin_strategy': True,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/release',
+ 'force_clobber': True,
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/release',
+ 'force_clobber': True,
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/release',
+ 'force_clobber': True,
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/release',
+ 'force_clobber': True,
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/release',
+ 'force_clobber': True,
+ },
+ 'linux-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-cc': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'linux64-tsan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'win32-debug': {
+ 'update_channel': 'default',
+ },
+ 'win32-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'win64-debug': {
+ 'update_channel': 'default',
+ },
+ 'win64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ },
+ },
+ 'mozilla-beta': {
+ 'enable_release_promotion': 1,
+ 'repo_path': 'releases/mozilla-beta',
+ 'update_channel': 'beta',
+ 'branch_uses_per_checkin_strategy': True,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/beta',
+ 'force_clobber': True,
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/beta',
+ 'force_clobber': True,
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/beta',
+ 'force_clobber': True,
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/beta',
+ 'force_clobber': True,
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/beta',
+ 'force_clobber': True,
+ },
+ 'linux-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-cc': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'linux64-tsan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'win32-debug': {
+ 'update_channel': 'default',
+ },
+ 'win32-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ 'win64-debug': {
+ 'update_channel': 'default',
+ },
+ 'win64-add-on-devel': {
+ 'update_channel': 'default',
+ },
+ },
+ },
+ 'mozilla-esr52': {
+ 'enable_release_promotion': True,
+ 'repo_path': 'releases/mozilla-esr52',
+ 'update_channel': 'esr',
+ 'branch_uses_per_checkin_strategy': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/release',
+ 'force_clobber': True,
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/release',
+ 'force_clobber': True,
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/release',
+ 'force_clobber': True,
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/release',
+ 'force_clobber': True,
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/release',
+ 'force_clobber': True,
+ },
+ 'linux-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-cc': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'linux64-tsan': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'win32-debug': {
+ 'update_channel': 'default',
+ },
+ 'win64-debug': {
+ 'update_channel': 'default',
+ },
+ },
+ },
+ 'mozilla-aurora': {
+ 'repo_path': 'releases/mozilla-aurora',
+ 'update_channel': 'aurora',
+ 'branch_uses_per_checkin_strategy': True,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ '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,
+ 'stage_server': 'upload.trybld.productdelivery.prod.mozaws.net',
+ 'stage_username': 'trybld',
+ 'stage_ssh_key': 'trybld_dsa',
+ 'branch_supports_uploadsymbols': False,
+ 'use_clobberer': False,
+ },
+
+ ### project branches
+ #'fx-team': {}, #Bug 1296396
+ 'gum': {
+ 'branch_uses_per_checkin_strategy': True,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'mozilla-inbound': {
+ 'repo_path': 'integration/mozilla-inbound',
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'autoland': {
+ 'repo_path': 'integration/autoland',
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'ux': {
+ "graph_server_branch_name": "UX",
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ # When build promotion goes live the mozconfig changes are probably better
+ # expressed once in files like configs/builds/releng_base_windows_32_builds.py
+ 'date': {
+ 'update_channel': 'beta-dev',
+ 'enable_release_promotion': 1,
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/beta',
+ },
+ 'linux-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/beta',
+ },
+ 'linux64-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-cc': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'linux64-tsan': {
+ 'update_channel': 'default',
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/beta',
+ },
+ 'macosx64-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/beta',
+ },
+ 'win32-debug': {
+ 'update_channel': 'default',
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/beta',
+ },
+ 'win64-debug': {
+ 'update_channel': 'default',
+ },
+ },
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'cypress': {
+ # bug 1164935
+ 'branch_uses_per_checkin_strategy': True,
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+
+ ### other branches that do not require anything special:
+ 'alder': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'ash': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'birch': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ # 'build-system': {}
+ 'cedar': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'elm': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'fig': {},
+ 'graphics': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ # 'holly': {},
+ 'jamun': {
+ 'update_channel': 'release-dev',
+ 'enable_release_promotion': 1,
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/release',
+ },
+ 'linux-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/release',
+ },
+ 'linux64-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-asan': {
+ 'update_channel': 'default',
+ },
+ 'linux64-cc': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'linux64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'linux64-tsan': {
+ 'update_channel': 'default',
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/release',
+ },
+ 'macosx64-debug': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an': {
+ 'update_channel': 'default',
+ },
+ 'macosx64-st-an-debug': {
+ 'update_channel': 'default',
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/release',
+ },
+ 'win32-debug': {
+ 'update_channel': 'default',
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/release',
+ },
+ 'win64-debug': {
+ 'update_channel': 'default',
+ },
+ },
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'larch': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ # 'maple': {},
+ 'oak': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+ 'pine': {
+ 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ },
+}
diff --git a/testing/mozharness/configs/builds/build_pool_specifics.py b/testing/mozharness/configs/builds/build_pool_specifics.py
new file mode 100644
index 000000000..8559b48b7
--- /dev/null
+++ b/testing/mozharness/configs/builds/build_pool_specifics.py
@@ -0,0 +1,44 @@
+# 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": {
+ # if not clobberer_url, only clobber 'abs_work_dir'
+ # if true: possibly clobber, clobberer
+ # 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',
+ 'stage_server': 'upload.ffxbld.productdelivery.stage.mozaws.net',
+ "sendchange_masters": ["dev-master1.srv.releng.scl3.mozilla.com:9038"],
+ 'taskcluster_index': 'index.garbage.staging',
+ 'post_upload_extra': ['--bucket-prefix', 'net-mozaws-stage-delivery',
+ '--url-prefix', 'http://ftp.stage.mozaws.net/',
+ ],
+ },
+ "production": {
+ # if not clobberer_url, only clobber 'abs_work_dir'
+ # if true: possibly clobber, clobberer
+ # see PurgeMixin for clobber() conditions
+ 'clobberer_url': 'https://api.pub.build.mozilla.org/clobberer/lastclobber',
+ 'graph_server': 'graphs.mozilla.org',
+ # bug 1216907, set this at branch level
+ # 'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
+ "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+ 'taskcluster_index': 'index',
+ },
+ "taskcluster": {
+ 'graph_server': 'graphs.mozilla.org',
+ 'stage_server': 'ignored',
+ # use the relengapi proxy to talk to tooltool
+ "tooltool_servers": ['http://relengapi/tooltool/'],
+ "tooltool_url": 'http://relengapi/tooltool/',
+ 'upload_env': {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': '/home/worker/artifacts',
+ },
+ },
+}
diff --git a/testing/mozharness/configs/builds/releng_base_android_64_builds.py b/testing/mozharness/configs/builds/releng_base_android_64_builds.py
new file mode 100644
index 000000000..0ffd929c3
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_android_64_builds.py
@@ -0,0 +1,111 @@
+import os
+
+config = {
+ #########################################################################
+ ######## ANDROID GENERIC CONFIG KEYS/VAlUES
+
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'multi-l10n',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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,
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64-android',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-api.key', '/builds/mozilla-api.key'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+ 'secret_files': [
+ {'filename': '/builds/mozilla-fennec-geoloc-api.key',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-fennec-geoloc-api.key',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk-beta.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk-beta.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ 'multi_locale': True,
+ #########################################################################
+
+
+ #########################################################################
+ 'base_name': 'Android 2.3 %(branch)s',
+ 'platform': 'android',
+ 'stage_platform': 'android',
+ 'stage_product': 'mobile',
+ 'publish_nightly_en_US_routes': True,
+ 'post_upload_include_platform': True,
+ 'enable_max_vsize': False,
+ 'use_package_as_marfile': 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',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/bin:/usr/bin',
+ 'SHIP_LICENSED_FONTS': '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': '/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',
+ },
+ 'mock_packages': ['autoconf213', 'mozilla-python27-mercurial', 'yasm',
+ 'ccache', 'zip', "gcc472_0moz1", "gcc473_0moz1",
+ 'java-1.7.0-openjdk-devel', 'zlib-devel',
+ 'glibc-static', 'openssh-clients', 'mpfr',
+ 'wget', 'glibc.i686', 'libstdc++.i686',
+ 'zlib.i686', 'freetype-2.3.11-6.el6_1.8.x86_64',
+ 'ant', 'ant-apache-regexp'
+ ],
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android/nightly',
+ 'tooltool_manifest_src': "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_linux_32_builds.py b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
new file mode 100644
index 000000000..393cf8983
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
@@ -0,0 +1,160 @@
+import os
+
+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
+
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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,
+ # 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'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ('/builds/adjust-sdk-beta.token', '/builds/adjust-sdk-beta.token'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+ 'secret_files': [
+ {'filename': '/builds/gapi.data',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/mozilla-desktop-geoloc-api.key',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-desktop-geoloc-api.key',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk-beta.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk-beta.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ ],
+ 'enable_ccache': 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',
+ 'publish_nightly_en_US_routes': 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',
+ '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',
+ },
+ '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",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_linux_64_builds.py b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
new file mode 100644
index 000000000..fe04b73b5
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
@@ -0,0 +1,139 @@
+import os
+
+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',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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,
+ # 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'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ('/builds/adjust-sdk-beta.token', '/builds/adjust-sdk-beta.token'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+ 'secret_files': [
+ {'filename': '/builds/gapi.data',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/mozilla-desktop-geoloc-api.key',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-desktop-geoloc-api.key',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/adjust-sdk-beta.token',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk-beta.token',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ ],
+ 'enable_ccache': 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',
+ 'publish_nightly_en_US_routes': 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',
+ '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',
+ },
+ '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",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_mac_64_builds.py b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
new file mode 100644
index 000000000..e6e338ada
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -0,0 +1,79 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ # 'setup-mock',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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,
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox/x86_64',
+ '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',
+ 'publish_nightly_en_US_routes': 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',
+ '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',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/nightly',
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py b/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
new file mode 100644
index 000000000..47738e1ce
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
@@ -0,0 +1,83 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## MACOSX CROSS GENERIC CONFIG KEYS/VAlUES
+
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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,
+ 'secret_files': [
+ {'filename': '/builds/gapi.data',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/mozilla-desktop-geoloc-api.key',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-desktop-geoloc-api.key',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ ],
+ 'enable_ccache': True,
+ 'enable_check_test': False,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox/',
+ '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',
+ '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',
+ ## 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',
+ ##
+ },
+ '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/linux64/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx64/nightly',
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/cross-releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_windows_32_builds.py b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
new file mode 100644
index 000000000..0a6708a1f
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
@@ -0,0 +1,95 @@
+import os
+import sys
+
+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_32_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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,
+ 'enable_ccache': False,
+ '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,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s',
+ 'platform': 'win32',
+ 'stage_platform': 'win32',
+ 'publish_nightly_en_US_routes': 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.01;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'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ '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,
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_base_windows_64_builds.py b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
new file mode 100644
index 000000000..ab12fc982
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
@@ -0,0 +1,93 @@
+import os
+import sys
+
+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',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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,
+ 'enable_ccache': False,
+ '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,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s',
+ 'platform': 'win64',
+ 'stage_platform': 'win64',
+ 'publish_nightly_en_US_routes': True,
+ 'env': {
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.01;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'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ '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,
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py
new file mode 100644
index 000000000..f25060340
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py
@@ -0,0 +1,8 @@
+config = {
+ 'base_name': 'Android armv7 API 15+ %(branch)s',
+ 'stage_platform': 'android-api-15',
+ 'build_type': 'api-15-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py
new file mode 100644
index 000000000..22787e7f9
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py
@@ -0,0 +1,9 @@
+config = {
+ 'base_name': 'Android armv7 API 15+ %(branch)s debug',
+ 'stage_platform': 'android-api-15-debug',
+ 'build_type': 'api-15-debug',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/debug',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'debug_build': True,
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py
new file mode 100644
index 000000000..7c03fc1dc
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py
@@ -0,0 +1,18 @@
+config = {
+ 'base_name': 'Android armv7 API 15+ %(branch)s Gradle',
+ 'stage_platform': 'android-api-15-gradle',
+ 'build_type': 'api-15-gradle',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-gradle/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ # It's not obvious, but postflight_build is after packaging, so the Gecko
+ # binaries are in the object directory, ready to be packaged into the
+ # GeckoView AAR.
+ 'postflight_build_mach_commands': [
+ ['gradle',
+ 'geckoview:assembleWithGeckoBinaries',
+ 'geckoview_example:assembleWithGeckoBinaries',
+ 'uploadArchives',
+ ],
+ ],
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py
new file mode 100644
index 000000000..c8bee2562
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py
@@ -0,0 +1,21 @@
+config = {
+ 'base_name': 'Android armv7 API 15+ Gradle dependencies %(branch)s',
+ 'stage_platform': 'android-api-15-gradle-dependencies',
+ 'build_type': 'api-15-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-gradle-dependencies/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'postflight_build_mach_commands': [
+ ['gradle',
+ 'assembleAutomationRelease',
+ 'assembleAutomationDebug',
+ 'assembleAutomationDebugAndroidTest',
+ 'checkstyle',
+ # Does not include Gecko binaries -- see mobile/android/gradle/with_gecko_binaries.gradle.
+ 'geckoview:assembleWithoutGeckoBinaries',
+ # So that we pick up the test dependencies for the builders.
+ 'geckoview_example:assembleWithoutGeckoBinaries',
+ 'geckoview_example:assembleWithoutGeckoBinariesAndroidTest',
+ ],
+ ],
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py
new file mode 100644
index 000000000..d2e03f78c
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py
@@ -0,0 +1,9 @@
+config = {
+ 'base_name': 'Android armv7 API 15+ partner Sample1 %(branch)s',
+ 'stage_platform': 'android-api-15-partner-sample1',
+ 'build_type': 'api-15-partner-sample1-opt',
+ 'src_mozconfig': None, # use manifest to determine mozconfig src
+ 'src_mozconfig_manifest': 'partner/mozconfigs/mozconfig1.json',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_checkstyle.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_checkstyle.py
new file mode 100644
index 000000000..6643bcb1b
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_checkstyle.py
@@ -0,0 +1,11 @@
+config = {
+ 'base_name': 'Android checkstyle %(branch)s',
+ 'stage_platform': 'android-checkstyle',
+ 'build_type': 'api-15-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-frontend/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-frontend/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'postflight_build_mach_commands': [
+ ['gradle', 'app:checkstyle'],
+ ],
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_lint.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_lint.py
new file mode 100644
index 000000000..f377d416c
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_lint.py
@@ -0,0 +1,11 @@
+config = {
+ 'base_name': 'Android lint %(branch)s',
+ 'stage_platform': 'android-lint',
+ 'build_type': 'api-15-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-frontend/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-frontend/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'postflight_build_mach_commands': [
+ ['gradle', 'app:lintAutomationDebug'],
+ ],
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_test.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_test.py
new file mode 100644
index 000000000..3e1a1492f
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_test.py
@@ -0,0 +1,11 @@
+config = {
+ 'base_name': 'Android armv7 unit tests %(branch)s',
+ 'stage_platform': 'android-test',
+ 'build_type': 'api-15-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15-frontend/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-frontend/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'postflight_build_mach_commands': [
+ ['gradle', 'app:testAutomationDebugUnitTest'],
+ ],
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_android_configs/64_x86.py b/testing/mozharness/configs/builds/releng_sub_android_configs/64_x86.py
new file mode 100644
index 000000000..288f0d65d
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_x86.py
@@ -0,0 +1,8 @@
+config = {
+ 'base_name': 'Android 4.2 x86 %(branch)s',
+ 'stage_platform': 'android-x86',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'x86-opt',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-x86/releng.manifest',
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
new file mode 100644
index 000000000..f016d5606
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
@@ -0,0 +1,116 @@
+import os
+
+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
+
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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': False,
+ 'enable_ccache': 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': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'Linux_%(branch)s_Artifact_build',
+ 'platform': 'linux',
+ 'stage_platform': 'linux',
+ 'publish_nightly_en_US_routes': 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',
+ '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",
+ },
+ '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/artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
+releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
new file mode 100644
index 000000000..914bfdfe3
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'linux-debug',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py
new file mode 100644
index 000000000..88ff8450a
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py
@@ -0,0 +1,122 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+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
+
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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': False,
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': MOZ_OBJDIR,
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': True,
+ # debug specific
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'Linux_%(branch)s_Artifact_build',
+ 'platform': 'linux',
+ 'stage_platform': 'linux-debug',
+ 'publish_nightly_en_US_routes': 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': 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',
+ # debug-specific
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ # 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",
+ },
+ '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/debug-artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
+releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_add-on-devel.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_add-on-devel.py
new file mode 100644
index 000000000..98462a62f
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_add-on-devel.py
@@ -0,0 +1,43 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+# 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-add-on-devel',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'add-on-devel',
+ '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',
+ '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': '/home/worker/workspace/build/src/gcc/bin:/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/add-on-devel',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
new file mode 100644
index 000000000..5cbc70ade
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
@@ -0,0 +1,98 @@
+import os
+
+config = {
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'sendchange',
+ # 'generate-build-stats',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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': False,
+ 'secret_files': [
+ {'filename': '/builds/gapi.data',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ {'filename': '/builds/mozilla-desktop-geoloc-api.key',
+ 'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-desktop-geoloc-api.key',
+ 'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
+ ],
+ 'enable_ccache': 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': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'Linux_x86-64_%(branch)s_Artifact_build',
+ 'platform': 'linux64',
+ 'stage_platform': 'linux64',
+ 'publish_nightly_en_US_routes': 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',
+ '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",
+ ##
+ },
+ '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/artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+releng.manifest",
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
new file mode 100644
index 000000000..0f57520b5
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
@@ -0,0 +1,48 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'asan',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
new file mode 100644
index 000000000..4ff6a9d2c
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
@@ -0,0 +1,49 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan-debug',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'asan-debug',
+ 'debug_build': True,
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py
new file mode 100644
index 000000000..0f57520b5
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py
@@ -0,0 +1,48 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'asan',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py
new file mode 100644
index 000000000..4ff6a9d2c
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py
@@ -0,0 +1,49 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan-debug',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'asan-debug',
+ 'debug_build': True,
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
new file mode 100644
index 000000000..3ab4f25a3
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'linux64-ccov',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
new file mode 100644
index 000000000..e97c82fcd
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py
new file mode 100644
index 000000000..d3a82e476
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py
@@ -0,0 +1,96 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'sendchange',
+ # 'generate-build-stats',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': MOZ_OBJDIR,
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': True,
+ # debug specific
+ 'debug_build': True,
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'Linux_x86-64_%(branch)s_Artifact_build',
+ 'platform': 'linux64',
+ 'stage_platform': 'linux64-debug',
+ 'publish_nightly_en_US_routes': 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': 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',
+ # debug-specific
+ '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",
+ ##
+ },
+ '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/debug-artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+releng.manifest",
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
new file mode 100644
index 000000000..dfc87cdf1
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
@@ -0,0 +1,20 @@
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'package-source',
+ 'generate-source-signing-manifest',
+ ],
+ 'stage_platform': 'source', # Not used, but required by the script
+ 'buildbot_json_path': 'buildprops.json',
+ 'app_ini_path': 'FAKE', # Not used, but required by the script
+ 'objdir': 'obj-firefox',
+ 'env': {
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'LC_ALL': 'C',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/source',
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
new file mode 100644
index 000000000..d4de036de
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
@@ -0,0 +1,50 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'linux64-st-an-debug',
+ 'build_type': 'st-an-debug',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_opt.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_opt.py
new file mode 100644
index 000000000..496d89f96
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_opt.py
@@ -0,0 +1,88 @@
+import os
+
+config = {
+ # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ # 'generate-build-stats',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ "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': False,
+ 'enable_ccache': 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': False,
+ 'enable_unittest_sendchange': False,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'Linux_x86-64_%(branch)s_Static_Analysis',
+ 'platform': 'linux64',
+ 'stage_platform': 'linux64-st-an',
+ 'publish_nightly_en_US_routes': 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',
+ '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",
+ ##
+ },
+ '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/opt-static-analysis-clang',
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/linux64/\
+clang.manifest.centos6',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_tsan.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_tsan.py
new file mode 100644
index 000000000..ae8ed6278
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_tsan.py
@@ -0,0 +1,46 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ # 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-tsan',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+tsan.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/opt-tsan',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
new file mode 100644
index 000000000..97ffd84f8
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
@@ -0,0 +1,49 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ #'setup-mock',
+ 'build',
+ #'upload-files',
+ #'sendchange',
+ 'check-test',
+ 'valgrind-test',
+ #'generate-build-stats',
+ #'update',
+ ],
+ 'stage_platform': 'linux64-valgrind',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'valgrind',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+releng.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/valgrind',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_add-on-devel.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_add-on-devel.py
new file mode 100644
index 000000000..d54c4d3a6
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_add-on-devel.py
@@ -0,0 +1,44 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+# 'setup-mock',
+ 'build',
+ 'upload-files',
+# 'sendchange',
+ 'check-test',
+# 'generate-build-stats',
+# 'update',
+ ],
+ 'stage_platform': 'macosx64-add-on-devel',
+ 'publish_nightly_en_US_routes': False,
+ 'build_type': 'add-on-devel',
+ 'platform_supports_post_upload_to_latest': False,
+ 'objdir': 'obj-firefox',
+ 'enable_signing': False,
+ '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',
+ ## 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/add-on-devel',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
new file mode 100644
index 000000000..c4d74c145
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
@@ -0,0 +1,65 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ # 'setup-mock',
+ 'checkout-sources',
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'OS X 10.7 %(branch)s_Artifact_build',
+ 'platform': 'macosx64',
+ 'stage_platform': 'macosx64',
+ 'publish_nightly_en_US_routes': False,
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ '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',
+ ##
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx64/artifact',
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug.py
new file mode 100644
index 000000000..91cbdb62d
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug.py
@@ -0,0 +1,43 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ # '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_opt.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_opt.py
new file mode 100644
index 000000000..f29800f14
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_opt.py
@@ -0,0 +1,39 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ ],
+ 'stage_platform': 'macosx64-st-an',
+ 'debug_build': False,
+ '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/opt-static-analysis',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_universal.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_universal.py
new file mode 100644
index 000000000..c399b4f4d
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_universal.py
@@ -0,0 +1,4 @@
+config = {
+ 'objdir': 'obj-firefox/x86_64',
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/nightly',
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
new file mode 100644
index 000000000..374dc12d1
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
@@ -0,0 +1,44 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py
new file mode 100644
index 000000000..937ca1291
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py
@@ -0,0 +1,65 @@
+import os
+import sys
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ #########################################################################
+ ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ # 'setup-mock',
+ 'checkout-sources',
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': MOZ_OBJDIR,
+ # debug specific
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'OS X 10.7 %(branch)s_Artifact_build',
+ 'platform': 'macosx64',
+ 'stage_platform': 'macosx64-debug',
+ 'publish_nightly_en_US_routes': False,
+ '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',
+ # debug-specific
+ '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-artifact',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
new file mode 100644
index 000000000..6dccae7ab
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
@@ -0,0 +1,48 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'macosx64-st-an-debug',
+ 'build_type': 'st-an-debug',
+ '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',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_add-on-devel.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_add-on-devel.py
new file mode 100644
index 000000000..ba108ab1f
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_add-on-devel.py
@@ -0,0 +1,38 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+# 'sendchange',
+ 'check-test',
+# 'generate-build-stats',
+# 'update',
+ ],
+ 'stage_platform': 'win32-add-on-devel',
+ 'build_type': 'add-on-devel',
+ '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.01;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/add-on-devel',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py
new file mode 100644
index 000000000..8bf35fba3
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py
@@ -0,0 +1,81 @@
+import os
+import sys
+
+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_32_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': False,
+ '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': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s_Artifact_build',
+ 'platform': 'win32',
+ 'stage_platform': 'win32',
+ 'publish_nightly_en_US_routes': False,
+ '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.0b1;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'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'enable_pymake': True,
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
new file mode 100644
index 000000000..d9b769505
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
@@ -0,0 +1,40 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ '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.01;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/debug',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py
new file mode 100644
index 000000000..ad9b2eeaf
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py
@@ -0,0 +1,86 @@
+import os
+import sys
+
+MOZ_OBJDIR = 'obj-firefox'
+
+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_32_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': False,
+ 'vcs_share_base': 'C:/builds/hg-shared',
+ 'objdir': MOZ_OBJDIR,
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ # debug specific
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s_Artifact_build',
+ 'platform': 'win32',
+ 'stage_platform': 'win32-debug',
+ 'publish_nightly_en_US_routes': False,
+ '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': MOZ_OBJDIR,
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ # debug-specific
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ },
+ 'enable_pymake': True,
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/debug-artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py
new file mode 100644
index 000000000..e02703462
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py
@@ -0,0 +1,44 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'win32-st-an-debug',
+ 'debug_build': True,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/\
+clang.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'objdir': MOZ_OBJDIR,
+ #### 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.01;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/debug-static-analysis',
+ 'purge_minsize': 9,
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_add-on-devel.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_add-on-devel.py
new file mode 100644
index 000000000..8567c7e72
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_add-on-devel.py
@@ -0,0 +1,37 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+# 'sendchange',
+ 'check-test',
+# 'generate-build-stats',
+# 'update',
+ ],
+ 'stage_platform': 'win64-add-on-devel',
+ 'build_type': 'add-on-devel',
+ '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/nsis-3.01;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/add-on-devel',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py
new file mode 100644
index 000000000..b99ebb6b3
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py
@@ -0,0 +1,79 @@
+import os
+import sys
+
+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',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': False,
+ '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': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s_Artifact_build',
+ 'platform': 'win64',
+ 'stage_platform': 'win64',
+ 'publish_nightly_en_US_routes': False,
+ 'env': {
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;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'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'enable_pymake': True,
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
new file mode 100644
index 000000000..e8145dea9
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
@@ -0,0 +1,39 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ '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/nsis-3.01;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/debug',
+ #######################
+}
diff --git a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py
new file mode 100644
index 000000000..892a6622d
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py
@@ -0,0 +1,85 @@
+import os
+import sys
+
+MOZ_OBJDIR = 'obj-firefox'
+
+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',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'sendchange',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ "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': False,
+ 'enable_ccache': False,
+ 'vcs_share_base': 'C:/builds/hg-shared',
+ 'objdir': MOZ_OBJDIR,
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ # debug specific
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ # allows triggering of test jobs when --artifact try syntax is detected on buildbot
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s_Artifact_build',
+ 'platform': 'win64',
+ 'stage_platform': 'win64-debug',
+ 'publish_nightly_en_US_routes': False,
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': MOZ_OBJDIR,
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;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',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ # debug-specific
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ },
+ 'enable_pymake': True,
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/debug-artifact',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/taskcluster_firefox_win32_debug.py b/testing/mozharness/configs/builds/taskcluster_firefox_win32_debug.py
new file mode 100644
index 000000000..ed53474ad
--- /dev/null
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_debug.py
@@ -0,0 +1,91 @@
+import os
+import sys
+
+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 between:
+ # - taskcluster_firefox_win32_debug
+ # - taskcluster_firefox_win32_opt
+ # - taskcluster_firefox_win64_debug
+ # - taskcluster_firefox_win64_opt
+
+ 'default_actions': [
+ 'clone-tools',
+ 'build',
+ 'check-test',
+ ],
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'make': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
+ )
+ ],
+ 'mach-build': [
+ os.path.join(os.environ['MOZILLABUILD'], 'msys', 'bin', 'bash.exe'),
+ os.path.join(os.getcwd(), 'build', 'src', 'mach'),
+ '--log-no-times', 'build', '-v'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'enable_ccache': False,
+ 'vcs_share_base': os.path.join('y:', os.sep, 'hg-shared'),
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [
+ sys.executable,
+ os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')
+ ],
+ 'tooltool_bootstrap': 'setup.sh',
+ 'enable_count_ctors': False,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s',
+ 'platform': 'win32',
+ 'stage_platform': 'win32-debug',
+ 'debug_build': True,
+ 'publish_nightly_en_US_routes': True,
+ 'env': {
+ 'BINSCOPE': os.path.join(
+ os.environ['ProgramFiles(x86)'], 'Microsoft', 'SDL BinScope', 'BinScope.exe'
+ ),
+ 'HG_SHARE_BASE_DIR': os.path.join('y:', os.sep, 'hg-shared'),
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/10/Debuggers/x86/srcsrv/pdbstr.exe',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ 'MSYSTEM': 'MINGW32',
+ },
+ 'upload_env': {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': os.path.join(os.getcwd(), 'public', 'build'),
+ },
+ "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,
+ 'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\debug',
+ 'tooltool_manifest_src': 'browser\\config\\tooltool-manifests\\win32\\releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/taskcluster_firefox_win32_opt.py b/testing/mozharness/configs/builds/taskcluster_firefox_win32_opt.py
new file mode 100644
index 000000000..4a6502dce
--- /dev/null
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_opt.py
@@ -0,0 +1,89 @@
+import os
+import sys
+
+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 between:
+ # - taskcluster_firefox_win32_debug
+ # - taskcluster_firefox_win32_opt
+ # - taskcluster_firefox_win64_debug
+ # - taskcluster_firefox_win64_opt
+
+ 'default_actions': [
+ 'clone-tools',
+ 'build',
+ 'check-test',
+ ],
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'make': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
+ )
+ ],
+ 'mach-build': [
+ os.path.join(os.environ['MOZILLABUILD'], 'msys', 'bin', 'bash.exe'),
+ os.path.join(os.getcwd(), 'build', 'src', 'mach'),
+ '--log-no-times', 'build', '-v'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'enable_ccache': False,
+ 'vcs_share_base': os.path.join('y:', os.sep, 'hg-shared'),
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [
+ sys.executable,
+ os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')
+ ],
+ 'tooltool_bootstrap': 'setup.sh',
+ 'enable_count_ctors': False,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s',
+ 'platform': 'win32',
+ 'stage_platform': 'win32',
+ 'publish_nightly_en_US_routes': True,
+ 'env': {
+ 'BINSCOPE': os.path.join(
+ os.environ['ProgramFiles(x86)'], 'Microsoft', 'SDL BinScope', 'BinScope.exe'
+ ),
+ 'HG_SHARE_BASE_DIR': os.path.join('y:', os.sep, 'hg-shared'),
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/10/Debuggers/x86/srcsrv/pdbstr.exe',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ 'MSYSTEM': 'MINGW32',
+ },
+ 'upload_env': {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': os.path.join(os.getcwd(), 'public', 'build'),
+ },
+ "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,
+ 'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\nightly',
+ 'tooltool_manifest_src': 'browser\\config\\tooltool-manifests\\win32\\releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/taskcluster_firefox_win64_debug.py b/testing/mozharness/configs/builds/taskcluster_firefox_win64_debug.py
new file mode 100644
index 000000000..687cf13c6
--- /dev/null
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_debug.py
@@ -0,0 +1,87 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## WINDOWS 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 between:
+ # - taskcluster_firefox_win32_debug
+ # - taskcluster_firefox_win32_opt
+ # - taskcluster_firefox_win64_debug
+ # - taskcluster_firefox_win64_opt
+
+ 'default_actions': [
+ 'clone-tools',
+ 'build',
+ 'check-test',
+ ],
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'make': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
+ )
+ ],
+ 'mach-build': [
+ os.path.join(os.environ['MOZILLABUILD'], 'msys', 'bin', 'bash.exe'),
+ os.path.join(os.getcwd(), 'build', 'src', 'mach'),
+ '--log-no-times', 'build', '-v'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'enable_ccache': False,
+ 'vcs_share_base': os.path.join('y:', os.sep, 'hg-shared'),
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [
+ sys.executable,
+ os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')
+ ],
+ 'tooltool_bootstrap': 'setup.sh',
+ 'enable_count_ctors': False,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s',
+ 'platform': 'win64',
+ 'stage_platform': 'win64-debug',
+ 'debug_build': True,
+ 'publish_nightly_en_US_routes': True,
+ 'env': {
+ 'HG_SHARE_BASE_DIR': os.path.join('y:', os.sep, 'hg-shared'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/10/Debuggers/x64/srcsrv/pdbstr.exe',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ 'MSYSTEM': 'MINGW32',
+ },
+ 'upload_env': {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': os.path.join(os.getcwd(), 'public', 'build'),
+ },
+ "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,
+ 'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\debug',
+ 'tooltool_manifest_src': 'browser\\config\\tooltool-manifests\\win64\\releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/builds/taskcluster_firefox_win64_opt.py b/testing/mozharness/configs/builds/taskcluster_firefox_win64_opt.py
new file mode 100644
index 000000000..ba9cc9350
--- /dev/null
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_opt.py
@@ -0,0 +1,85 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## WINDOWS 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 between:
+ # - taskcluster_firefox_win32_debug
+ # - taskcluster_firefox_win32_opt
+ # - taskcluster_firefox_win64_debug
+ # - taskcluster_firefox_win64_opt
+
+ 'default_actions': [
+ 'clone-tools',
+ 'build',
+ 'check-test',
+ ],
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'make': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
+ )
+ ],
+ 'mach-build': [
+ os.path.join(os.environ['MOZILLABUILD'], 'msys', 'bin', 'bash.exe'),
+ os.path.join(os.getcwd(), 'build', 'src', 'mach'),
+ '--log-no-times', 'build', '-v'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'enable_ccache': False,
+ 'vcs_share_base': os.path.join('y:', os.sep, 'hg-shared'),
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [
+ sys.executable,
+ os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')
+ ],
+ 'tooltool_bootstrap': 'setup.sh',
+ 'enable_count_ctors': False,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s',
+ 'platform': 'win64',
+ 'stage_platform': 'win64',
+ 'publish_nightly_en_US_routes': True,
+ 'env': {
+ 'HG_SHARE_BASE_DIR': os.path.join('y:', os.sep, 'hg-shared'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/10/Debuggers/x64/srcsrv/pdbstr.exe',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ 'MSYSTEM': 'MINGW32',
+ },
+ 'upload_env': {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': os.path.join(os.getcwd(), 'public', 'build'),
+ },
+ "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,
+ 'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\nightly',
+ 'tooltool_manifest_src': 'browser\\config\\tooltool-manifests\\win64\\releng.manifest',
+ #########################################################################
+}
diff --git a/testing/mozharness/configs/developer_config.py b/testing/mozharness/configs/developer_config.py
new file mode 100644
index 000000000..49ddb6eb7
--- /dev/null
+++ b/testing/mozharness/configs/developer_config.py
@@ -0,0 +1,49 @@
+"""
+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,
+ "replace_urls": [
+ ("http://pvtbuilds.pvt.build", "https://pvtbuilds"),
+ ],
+
+ # General local variable overwrite
+ "exes": {
+ "gittool.py": os.path.join(LOCAL_WORKDIR, "gittool.py"),
+ },
+
+ # Pip
+ "find_links": ["http://pypi.pub.build.mozilla.org/pub"],
+ "pip_index": False,
+
+ # Talos related
+ "python_webserver": True,
+ "virtualenv_path": '%s/build/venv' % os.getcwd(),
+ "preflight_run_cmd_suites": [],
+ "postflight_run_cmd_suites": [],
+
+ # Tooltool related
+ "download_tooltool": True,
+ "tooltool_cache": os.path.join(LOCAL_WORKDIR, "builds/tooltool_cache"),
+ "tooltool_cache_path": os.path.join(LOCAL_WORKDIR, "builds/tooltool_cache"),
+
+ # VCS tools
+ "gittool.py": 'http://hg.mozilla.org/build/puppet/raw-file/faaf5abd792e/modules/packages/files/gittool.py',
+
+ # Android related
+ "host_utils_url": "https://api.pub.build.mozilla.org/tooltool/sha512/372c89f9dccaf5ee3b9d35fd1cfeb089e1e5db3ff1c04e35aa3adc8800bc61a2ae10e321f37ae7bab20b56e60941f91bb003bcb22035902a73d70872e7bd3282",
+}
diff --git a/testing/mozharness/configs/disable_signing.py b/testing/mozharness/configs/disable_signing.py
new file mode 100644
index 000000000..77fc85f2d
--- /dev/null
+++ b/testing/mozharness/configs/disable_signing.py
@@ -0,0 +1,3 @@
+config = {
+ 'enable_signing': False,
+}
diff --git a/testing/mozharness/configs/firefox_ui_tests/qa_jenkins.py b/testing/mozharness/configs/firefox_ui_tests/qa_jenkins.py
new file mode 100644
index 000000000..5f6911b81
--- /dev/null
+++ b/testing/mozharness/configs/firefox_ui_tests/qa_jenkins.py
@@ -0,0 +1,19 @@
+# Default configuration as used by Mozmill CI (Jenkins)
+
+
+config = {
+ # Tests run in mozmill-ci do not use RelEng infra
+ 'developer_mode': True,
+
+ # PIP
+ 'find_links': ['http://pypi.pub.build.mozilla.org/pub'],
+ 'pip_index': False,
+
+ # mozcrash support
+ 'download_minidump_stackwalk': True,
+ 'download_symbols': 'ondemand',
+ 'download_tooltool': True,
+
+ # Disable proxxy because it isn't present in the QA environment.
+ 'proxxy': {},
+}
diff --git a/testing/mozharness/configs/firefox_ui_tests/releng_release.py b/testing/mozharness/configs/firefox_ui_tests/releng_release.py
new file mode 100644
index 000000000..28baf6aef
--- /dev/null
+++ b/testing/mozharness/configs/firefox_ui_tests/releng_release.py
@@ -0,0 +1,33 @@
+# Default configuration as used by Release Engineering for testing release/beta builds
+
+import os
+import sys
+
+import mozharness
+
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+
+config = {
+ # General local variable overwrite
+ 'exes': {
+ 'gittool.py': [
+ # Bug 1227079 - Python executable eeded to get it executed on Windows
+ sys.executable,
+ os.path.join(external_tools_path, 'gittool.py')
+ ],
+ },
+
+ # PIP
+ 'find_links': ['http://pypi.pub.build.mozilla.org/pub'],
+ 'pip_index': False,
+
+ # mozcrash support
+ 'download_minidump_stackwalk': True,
+ 'download_symbols': 'ondemand',
+ 'download_tooltool': True,
+}
diff --git a/testing/mozharness/configs/firefox_ui_tests/taskcluster.py b/testing/mozharness/configs/firefox_ui_tests/taskcluster.py
new file mode 100644
index 000000000..66fc72935
--- /dev/null
+++ b/testing/mozharness/configs/firefox_ui_tests/taskcluster.py
@@ -0,0 +1,11 @@
+# Config file for firefox ui tests run via TaskCluster.
+
+config = {
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+
+ "pip_index": False,
+
+ "tooltool_cache": "/builds/tooltool_cache",
+}
diff --git a/testing/mozharness/configs/hazards/build_browser.py b/testing/mozharness/configs/hazards/build_browser.py
new file mode 100644
index 000000000..a08efe925
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_browser.py
@@ -0,0 +1,4 @@
+config = {
+ 'build_command': "build.browser",
+ 'expect_file': "expect.browser.json",
+}
diff --git a/testing/mozharness/configs/hazards/build_shell.py b/testing/mozharness/configs/hazards/build_shell.py
new file mode 100644
index 000000000..16135705a
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_shell.py
@@ -0,0 +1,4 @@
+config = {
+ 'build_command': "build.shell",
+ 'expect_file': "expect.shell.json",
+}
diff --git a/testing/mozharness/configs/hazards/common.py b/testing/mozharness/configs/hazards/common.py
new file mode 100644
index 000000000..f8d751044
--- /dev/null
+++ b/testing/mozharness/configs/hazards/common.py
@@ -0,0 +1,104 @@
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+PYTHON_DIR = "/tools/python27"
+SRCDIR = "source"
+
+config = {
+ "platform": "linux64",
+ "build_type": "br-haz",
+ "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",
+
+ "exes": {
+ 'gittool.py': '%(abs_tools_dir)s/buildfarm/utils/gittool.py',
+ 'tooltool.py': '/tools/tooltool.py',
+ "virtualenv": [PYTHON_DIR + "/bin/python", "/tools/misc-python/virtualenv.py"],
+ },
+
+ "force_clobber": True,
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+
+ "repos": [{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+
+ "upload_remote_baseuri": 'https://ftp-ssl.mozilla.org/',
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+
+ "virtualenv_path": '%s/venv' % os.getcwd(),
+ 'tools_dir': "/tools",
+ 'compiler_manifest': "build/gcc.manifest",
+ 'b2g_compiler_manifest': "build/gcc-b2g.manifest",
+ 'sixgill_manifest': "build/sixgill.manifest",
+
+ # 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"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ("/tools/tooltool.py", "/tools/tooltool.py"),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+ "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",
+
+ # Suppress the mercurial-setup check. When running in automation, this
+ # is redundant with MOZ_AUTOMATION, but a local developer-mode build
+ # will have the mach state directory set to a nonstandard location and
+ # therefore will always claim that mercurial-setup has not been run.
+ "I_PREFER_A_SUBOPTIMAL_MERCURIAL_EXPERIENCE": "1",
+ },
+}
diff --git a/testing/mozharness/configs/marionette/prod_config.py b/testing/mozharness/configs/marionette/prod_config.py
new file mode 100644
index 000000000..0d71c1cc3
--- /dev/null
+++ b/testing/mozharness/configs/marionette/prod_config.py
@@ -0,0 +1,56 @@
+# This is a template config file for marionette production.
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ # marionette options
+ "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-tests',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+ "download_symbols": "ondemand",
+ "download_minidump_stackwalk": True,
+ "tooltool_cache": "/builds/tooltool_cache",
+ "suite_definitions": {
+ "marionette_desktop": {
+ "options": [
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--log-html=%(html_report_file)s",
+ "--binary=%(binary)s",
+ "--address=%(address)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "",
+ "testsdir": ""
+ }
+ },
+ "structured_output": True,
+}
diff --git a/testing/mozharness/configs/marionette/test_config.py b/testing/mozharness/configs/marionette/test_config.py
new file mode 100644
index 000000000..6a0f3eee3
--- /dev/null
+++ b/testing/mozharness/configs/marionette/test_config.py
@@ -0,0 +1,29 @@
+# This is a template config file for marionette test.
+
+config = {
+ # marionette options
+ "marionette_address": "localhost:2828",
+ "test_manifest": "unit-tests.ini",
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "suite_definitions": {
+ "marionette_desktop": {
+ "options": [
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--log-html=%(html_report_file)s",
+ "--binary=%(binary)s",
+ "--address=%(address)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "",
+ "testsdir": ""
+ },
+ },
+}
diff --git a/testing/mozharness/configs/marionette/windows_config.py b/testing/mozharness/configs/marionette/windows_config.py
new file mode 100644
index 000000000..039a459b2
--- /dev/null
+++ b/testing/mozharness/configs/marionette/windows_config.py
@@ -0,0 +1,57 @@
+# This is a template config file for marionette production on Windows.
+import os
+import sys
+
+config = {
+ # marionette options
+ "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-tests',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "download_symbols": "ondemand",
+ "suite_definitions": {
+ "marionette_desktop": {
+ "options": [
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--log-html=%(html_report_file)s",
+ "--binary=%(binary)s",
+ "--address=%(address)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "",
+ "testsdir": ""
+ },
+ },
+}
diff --git a/testing/mozharness/configs/marionette/windows_taskcluster_config.py b/testing/mozharness/configs/marionette/windows_taskcluster_config.py
new file mode 100644
index 000000000..fe3ed0c62
--- /dev/null
+++ b/testing/mozharness/configs/marionette/windows_taskcluster_config.py
@@ -0,0 +1,56 @@
+# This is a template config file for marionette production on Windows.
+import os
+import sys
+
+config = {
+ # marionette options
+ "marionette_address": "localhost:2828",
+ "test_manifest": "unit-tests.ini",
+
+ "virtualenv_python_dll": os.path.join(os.path.dirname(sys.executable), 'python27.dll'),
+ "virtualenv_path": 'venv',
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(os.path.dirname(sys.executable), 'Lib', 'site-packages', 'virtualenv.py')
+ ],
+ 'mozinstall': ['build/venv/scripts/python', 'build/venv/scripts/mozinstall-script.py'],
+ 'tooltool.py': [sys.executable, os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')],
+ 'hg': os.path.join(os.environ['PROGRAMFILES'], 'Mercurial', 'hg')
+ },
+
+ "proxxy": {},
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : 'C:/builds/oauth.txt',
+ "download_minidump_stackwalk": True,
+ "download_symbols": "ondemand",
+ "suite_definitions": {
+ "marionette_desktop": {
+ "options": [
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--log-html=%(html_report_file)s",
+ "--binary=%(binary)s",
+ "--address=%(address)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "",
+ "testsdir": ""
+ },
+ },
+}
diff --git a/testing/mozharness/configs/mediatests/buildbot_posix_config.py b/testing/mozharness/configs/mediatests/buildbot_posix_config.py
new file mode 100644
index 000000000..8c30a9f28
--- /dev/null
+++ b/testing/mozharness/configs/mediatests/buildbot_posix_config.py
@@ -0,0 +1,50 @@
+import os
+import mozharness
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+config = {
+ "virtualenv_path": 'venv',
+ "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-media-tests',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "download_symbols": "ondemand",
+
+ "suite_definitions": {
+ "media-tests": {
+ "options": [],
+ },
+ "media-youtube-tests": {
+ "options": [
+ "%(test_manifest)s"
+ ],
+ },
+ },
+}
diff --git a/testing/mozharness/configs/mediatests/buildbot_windows_config.py b/testing/mozharness/configs/mediatests/buildbot_windows_config.py
new file mode 100644
index 000000000..270938378
--- /dev/null
+++ b/testing/mozharness/configs/mediatests/buildbot_windows_config.py
@@ -0,0 +1,56 @@
+import os
+import sys
+import mozharness
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+config = {
+ "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-media-tests',
+ ],
+ "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,
+ "download_symbols": "ondemand",
+
+ "suite_definitions": {
+ "media-tests": {
+ "options": [],
+ },
+ "media-youtube-tests": {
+ "options": [
+ "%(test_manifest)s"
+ ],
+ },
+ },
+}
diff --git a/testing/mozharness/configs/mediatests/jenkins_config.py b/testing/mozharness/configs/mediatests/jenkins_config.py
new file mode 100755
index 000000000..52de7221d
--- /dev/null
+++ b/testing/mozharness/configs/mediatests/jenkins_config.py
@@ -0,0 +1,48 @@
+# Default configuration as used by Mozmill CI (Jenkins)
+
+import os
+import platform
+import sys
+
+import mozharness
+
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+config = {
+ # PIP
+ 'find_links': ['http://pypi.pub.build.mozilla.org/pub'],
+ 'pip_index': False,
+
+ # mozcrash support
+ 'download_minidump_stackwalk': True,
+ 'download_symbols': 'ondemand',
+ 'download_tooltool': True,
+
+ # Default test suite
+ 'test_suite': 'media-tests',
+
+ 'suite_definitions': {
+ 'media-tests': {
+ 'options': [],
+ },
+ 'media-youtube-tests': {
+ 'options': [
+ '%(test_manifest)s'
+ ],
+ },
+ },
+
+ 'default_actions': [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-media-tests',
+ ],
+
+}
+
diff --git a/testing/mozharness/configs/mediatests/taskcluster_posix_config.py b/testing/mozharness/configs/mediatests/taskcluster_posix_config.py
new file mode 100644
index 000000000..d02effa3d
--- /dev/null
+++ b/testing/mozharness/configs/mediatests/taskcluster_posix_config.py
@@ -0,0 +1,47 @@
+import os
+import mozharness
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+config = {
+ # Python env
+ "virtualenv_path": 'venv',
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ # PIP
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ #mozcrash support
+ "download_minidump_stackwalk": True,
+ "download_symbols": "ondemand",
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-media-tests',
+ ],
+
+ "suite_definitions": {
+ "media-tests": {
+ "options": [],
+ },
+ "media-youtube-tests": {
+ "options": [
+ "%(test_manifest)s"
+ ],
+ },
+ },
+}
diff --git a/testing/mozharness/configs/mediatests/taskcluster_windows_config.py b/testing/mozharness/configs/mediatests/taskcluster_windows_config.py
new file mode 100644
index 000000000..85bf8b525
--- /dev/null
+++ b/testing/mozharness/configs/mediatests/taskcluster_windows_config.py
@@ -0,0 +1,50 @@
+import os
+import sys
+import mozharness
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+config = {
+ "virtualenv_python_dll": os.path.join(os.path.dirname(sys.executable), 'python27.dll'),
+ "virtualenv_path": 'venv',
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(os.path.dirname(sys.executable), 'Lib', 'site-packages', 'virtualenv.py')
+ ],
+ 'mozinstall': ['build/venv/scripts/python', 'build/venv/scripts/mozinstall-script.py'],
+ 'tooltool.py': [sys.executable, os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')],
+ 'hg': os.path.join(os.environ['PROGRAMFILES'], 'Mercurial', 'hg')
+ },
+ "proxxy": {},
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "download_minidump_stackwalk": True,
+ "download_symbols": "ondemand",
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-media-tests',
+ ],
+
+ "suite_definitions": {
+ "media-tests": {
+ "options": [],
+ },
+ "media-youtube-tests": {
+ "options": [
+ "%(test_manifest)s"
+ ],
+ },
+ },
+}
diff --git a/testing/mozharness/configs/merge_day/aurora_to_beta.py b/testing/mozharness/configs/merge_day/aurora_to_beta.py
new file mode 100644
index 000000000..dc1fc4c83
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/aurora_to_beta.py
@@ -0,0 +1,83 @@
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+
+config = {
+ "log_name": "aurora_to_beta",
+ "version_files": [
+ {"file": "browser/config/version.txt", "suffix": ""},
+ {"file": "browser/config/version_display.txt", "suffix": "b1"},
+ {"file": "config/milestone.txt", "suffix": ""},
+ ],
+ "replacements": [
+ # File, from, to
+ ("{}/{}".format(d, f),
+ "ac_add_options --with-branding=mobile/android/branding/aurora",
+ "ac_add_options --with-branding=mobile/android/branding/beta")
+ for d in ["mobile/android/config/mozconfigs/android-api-15/",
+ "mobile/android/config/mozconfigs/android-x86/"]
+ for f in ["debug", "nightly", "l10n-nightly"]
+ ] + [
+ # File, from, to
+ ("{}/{}".format(d, f),
+ "ac_add_options --with-branding=browser/branding/aurora",
+ "ac_add_options --with-branding=browser/branding/nightly")
+ for d in ["browser/config/mozconfigs/linux32",
+ "browser/config/mozconfigs/linux64",
+ "browser/config/mozconfigs/win32",
+ "browser/config/mozconfigs/win64",
+ "browser/config/mozconfigs/macosx64"]
+ for f in ["debug", "nightly"]
+ ] + [
+ # File, from, to
+ (f, "ac_add_options --with-branding=browser/branding/aurora",
+ "ac_add_options --enable-official-branding")
+ for f in ["browser/config/mozconfigs/linux32/l10n-mozconfig",
+ "browser/config/mozconfigs/linux64/l10n-mozconfig",
+ "browser/config/mozconfigs/win32/l10n-mozconfig",
+ "browser/config/mozconfigs/win64/l10n-mozconfig",
+ "browser/config/mozconfigs/macosx-universal/l10n-mozconfig",
+ "browser/config/mozconfigs/macosx64/l10n-mozconfig"]
+ ] + [
+ ("browser/config/mozconfigs/macosx-universal/nightly",
+ "ac_add_options --with-branding=browser/branding/aurora",
+ "ac_add_options --with-branding=browser/branding/nightly"),
+ ("browser/confvars.sh",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-aurora",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release"),
+ ("browser/confvars.sh",
+ "MAR_CHANNEL_ID=firefox-mozilla-aurora",
+ "MAR_CHANNEL_ID=firefox-mozilla-beta"),
+ ("browser/config/mozconfigs/whitelist",
+ "ac_add_options --with-branding=browser/branding/aurora",
+ "ac_add_options --with-branding=browser/branding/nightly"),
+ ] + [
+ ("build/mozconfig.common",
+ "MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}",
+ "MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}"),
+ ("build/mozconfig.common",
+ "# Disable enforcing that add-ons are signed by the trusted root",
+ "# Enable enforcing that add-ons are signed by the trusted root")
+ ],
+
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ # "hg_share_base": None,
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "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.8.1",
+ ],
+
+ "post_merge_builders": [],
+ "post_merge_nightly_branches": [
+ # No nightlies on mozilla-beta
+ ],
+}
diff --git a/testing/mozharness/configs/merge_day/beta_to_release.py b/testing/mozharness/configs/merge_day/beta_to_release.py
new file mode 100644
index 000000000..0316272bf
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/beta_to_release.py
@@ -0,0 +1,53 @@
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+
+config = {
+ "log_name": "beta_to_release",
+ "copy_files": [
+ {
+ "src": "browser/config/version.txt",
+ "dst": "browser/config/version_display.txt",
+ },
+ ],
+ "replacements": [
+ # File, from, to
+ ("{}/{}".format(d, f),
+ "ac_add_options --with-branding=mobile/android/branding/beta",
+ "ac_add_options --with-branding=mobile/android/branding/official")
+ for d in ["mobile/android/config/mozconfigs/android-api-15/",
+ "mobile/android/config/mozconfigs/android-x86/"]
+ for f in ["debug", "nightly", "l10n-nightly", "l10n-release", "release"]
+ ] + [
+ # File, from, to
+ ("browser/confvars.sh",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release"),
+ ("browser/confvars.sh",
+ "MAR_CHANNEL_ID=firefox-mozilla-beta",
+ "MAR_CHANNEL_ID=firefox-mozilla-release"),
+ ],
+
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ # "hg_share_base": None,
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "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.8.1",
+ ],
+
+ "post_merge_builders": [],
+ "post_merge_nightly_branches": [
+ # No nightlies on mozilla-release
+ ],
+}
diff --git a/testing/mozharness/configs/merge_day/bump_esr.py b/testing/mozharness/configs/merge_day/bump_esr.py
new file mode 100644
index 000000000..48ab2e9de
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/bump_esr.py
@@ -0,0 +1,24 @@
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+config = {
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ "log_name": "bump_esr",
+ "version_files": [
+ {"file": "browser/config/version.txt", "suffix": ""},
+ {"file": "browser/config/version_display.txt", "suffix": ""},
+ {"file": "config/milestone.txt", "suffix": ""},
+ ],
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "default",
+ "to_repo_url": "ssh://hg.mozilla.org/releases/mozilla-esr52",
+
+ "migration_behavior": "bump_second_digit",
+ "require_remove_locales": False,
+ "requires_head_merge": False,
+ "default_actions": [
+ "clean-repos",
+ "pull",
+ "bump_second_digit"
+ ],
+}
diff --git a/testing/mozharness/configs/merge_day/central_to_aurora.py b/testing/mozharness/configs/merge_day/central_to_aurora.py
new file mode 100644
index 000000000..36347f667
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/central_to_aurora.py
@@ -0,0 +1,100 @@
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+config = {
+ "log_name": "central_to_aurora",
+ "version_files": [
+ {"file": "browser/config/version.txt", "suffix": ""},
+ {"file": "browser/config/version_display.txt", "suffix": ""},
+ {"file": "config/milestone.txt", "suffix": ""},
+ ],
+ "replacements": [
+ # File, from, to
+ ("{}/{}".format(d, f),
+ "ac_add_options --with-branding=mobile/android/branding/nightly",
+ "ac_add_options --with-branding=mobile/android/branding/aurora")
+ for d in ["mobile/android/config/mozconfigs/android-api-15/",
+ "mobile/android/config/mozconfigs/android-x86/"]
+ for f in ["debug", "nightly", "l10n-nightly"]
+ ] + [
+ # File, from, to
+ ("{}/{}".format(d, f),
+ "ac_add_options --with-branding=browser/branding/nightly",
+ "ac_add_options --with-branding=browser/branding/aurora")
+ for d in ["browser/config/mozconfigs/linux32",
+ "browser/config/mozconfigs/linux64",
+ "browser/config/mozconfigs/win32",
+ "browser/config/mozconfigs/win64",
+ "browser/config/mozconfigs/macosx64"]
+ for f in ["debug", "nightly", "l10n-mozconfig"]
+ ] + [
+ # File, from, to
+ ("{}/l10n-nightly".format(d),
+ "ac_add_options --with-l10n-base=../../l10n-central",
+ "ac_add_options --with-l10n-base=..")
+ for d in ["mobile/android/config/mozconfigs/android-api-15/",
+ "mobile/android/config/mozconfigs/android-x86/"]
+ ] + [
+ # File, from, to
+ (f, "ac_add_options --enable-profiling", "") for f in
+ ["mobile/android/config/mozconfigs/android-api-15/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"]
+ ] + [
+ # File, from, to
+ ("browser/confvars.sh",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-central",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-aurora"),
+ ("browser/confvars.sh",
+ "MAR_CHANNEL_ID=firefox-mozilla-central",
+ "MAR_CHANNEL_ID=firefox-mozilla-aurora"),
+ ("browser/config/mozconfigs/macosx-universal/nightly",
+ "ac_add_options --with-branding=browser/branding/nightly",
+ "ac_add_options --with-branding=browser/branding/aurora"),
+ ("browser/config/mozconfigs/macosx-universal/l10n-mozconfig",
+ "ac_add_options --with-branding=browser/branding/nightly",
+ "ac_add_options --with-branding=browser/branding/aurora"),
+ ("browser/config/mozconfigs/whitelist",
+ "ac_add_options --with-branding=browser/branding/nightly",
+ "ac_add_options --with-branding=browser/branding/aurora"),
+ ],
+ "locale_files": [
+ "browser/locales/shipped-locales",
+ "browser/locales/all-locales",
+ "mobile/android/locales/maemo-locales",
+ "mobile/android/locales/all-locales"
+ ],
+
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ # "hg_share_base": None,
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "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.8.1",
+ ],
+
+ "post_merge_builders": [],
+ "post_merge_nightly_branches": [
+ "mozilla-central",
+ "mozilla-aurora",
+ ],
+}
diff --git a/testing/mozharness/configs/merge_day/release_to_esr.py b/testing/mozharness/configs/merge_day/release_to_esr.py
new file mode 100644
index 000000000..358c583da
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/release_to_esr.py
@@ -0,0 +1,54 @@
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+NEW_ESR_REPO = "ssh://hg.mozilla.org/releases/mozilla-esr52"
+OLD_ESR_REPO = "https://hg.mozilla.org/releases/mozilla-esr45"
+OLD_ESR_CHANGESET = "d2d75f526882"
+
+config = {
+ "log_name": "relese_to_esr",
+ "version_files": [
+ {"file": "browser/config/version.txt", "suffix": ""},
+ {"file": "browser/config/version_display.txt", "suffix": ""},
+ {"file": "config/milestone.txt", "suffix": ""},
+ ],
+ "replacements": [
+ # File, from, to
+ ("browser/confvars.sh",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release",
+ "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-esr"),
+ ("browser/confvars.sh",
+ "MAR_CHANNEL_ID=firefox-mozilla-release",
+ "MAR_CHANNEL_ID=firefox-mozilla-esr"),
+ ("build/mozconfig.common",
+ "# Enable checking that add-ons are signed by the trusted root",
+ "# Disable checking that add-ons are signed by the trusted root"),
+ ("build/mozconfig.common",
+ "MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-1}",
+ "MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-0}"),
+ ("build/mozconfig.common",
+ "# Enable enforcing that add-ons are signed by the trusted root",
+ "# Disable enforcing that add-ons are signed by the trusted root"),
+ ("build/mozconfig.common",
+ "MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}",
+ "MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}"),
+ ],
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ # "hg_share_base": None,
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "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,
+}
diff --git a/testing/mozharness/configs/merge_day/staging_beta_migration.py b/testing/mozharness/configs/merge_day/staging_beta_migration.py
new file mode 100644
index 000000000..9b6ac198e
--- /dev/null
+++ b/testing/mozharness/configs/merge_day/staging_beta_migration.py
@@ -0,0 +1,22 @@
+# 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 ...
+import os
+
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+
+config = {
+ "log_name": "staging_beta",
+
+ "vcs_share_base": os.path.join(ABS_WORK_DIR, 'hg-shared'),
+ "tools_repo_url": "https://hg.mozilla.org/build/tools",
+ "tools_repo_branch": "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",
+}
diff --git a/testing/mozharness/configs/multi_locale/android-mozharness-build.json b/testing/mozharness/configs/multi_locale/android-mozharness-build.json
new file mode 100644
index 000000000..b28f5c015
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/android-mozharness-build.json
@@ -0,0 +1,5 @@
+{
+ "work_dir": "build",
+ "locales_file": "src/mobile/android/locales/maemo-locales",
+ "mozilla_dir": "src"
+}
diff --git a/testing/mozharness/configs/multi_locale/ash_android-x86.json b/testing/mozharness/configs/multi_locale/ash_android-x86.json
new file mode 100644
index 000000000..6a37ce24f
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/ash_android-x86.json
@@ -0,0 +1,28 @@
+{
+ "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/projects/ash",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/ash_android.json b/testing/mozharness/configs/multi_locale/ash_android.json
new file mode 100644
index 000000000..831d4f7c3
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/ash_android.json
@@ -0,0 +1,27 @@
+{
+ "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/projects/ash",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+ "hg_l10n_tag": "default",
+ "l10n_dir": "l10n-central",
+ "merge_locales": true,
+ "mozilla_dir": "build"
+}
diff --git a/testing/mozharness/configs/multi_locale/b2g_linux32.py b/testing/mozharness/configs/multi_locale/b2g_linux32.py
new file mode 100644
index 000000000..8403f7553
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_linux32.py
@@ -0,0 +1,2 @@
+config = {
+}
diff --git a/testing/mozharness/configs/multi_locale/b2g_linux64.py b/testing/mozharness/configs/multi_locale/b2g_linux64.py
new file mode 100644
index 000000000..8403f7553
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_linux64.py
@@ -0,0 +1,2 @@
+config = {
+}
diff --git a/testing/mozharness/configs/multi_locale/b2g_macosx64.py b/testing/mozharness/configs/multi_locale/b2g_macosx64.py
new file mode 100644
index 000000000..8403f7553
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/b2g_macosx64.py
@@ -0,0 +1,2 @@
+config = {
+}
diff --git a/testing/mozharness/configs/multi_locale/b2g_win32.py b/testing/mozharness/configs/multi_locale/b2g_win32.py
new file mode 100644
index 000000000..a82ce7155
--- /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"],
+ },
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json
new file mode 100644
index 000000000..dc50707cf
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-armv6.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json
new file mode 100644
index 000000000..bd5f8b6ba
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android-x86.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-aurora_android.json b/testing/mozharness/configs/multi_locale/mozilla-aurora_android.json
new file mode 100644
index 000000000..1cc38e35b
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-aurora_android.json
@@ -0,0 +1,27 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json b/testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json
new file mode 100644
index 000000000..4cffd4807
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android-armv6.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json b/testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json
new file mode 100644
index 000000000..233e740aa
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android-x86.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-beta_android.json b/testing/mozharness/configs/multi_locale/mozilla-beta_android.json
new file mode 100644
index 000000000..c9d0e4d6b
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-beta_android.json
@@ -0,0 +1,27 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json b/testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json
new file mode 100644
index 000000000..1b27a017e
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android-armv6.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json b/testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json
new file mode 100644
index 000000000..0873a0198
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android-x86.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-central_android.json b/testing/mozharness/configs/multi_locale/mozilla-central_android.json
new file mode 100644
index 000000000..67d195242
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-central_android.json
@@ -0,0 +1,27 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+ "hg_l10n_tag": "default",
+ "l10n_dir": "l10n-central",
+ "merge_locales": true,
+ "mozilla_dir": "build"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json b/testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json
new file mode 100644
index 000000000..fbfff0d7c
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android-armv6.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json b/testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json
new file mode 100644
index 000000000..96aa60cef
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android-x86.json
@@ -0,0 +1,28 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/mozilla-release_android.json b/testing/mozharness/configs/multi_locale/mozilla-release_android.json
new file mode 100644
index 000000000..9a737f9a9
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/mozilla-release_android.json
@@ -0,0 +1,27 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json
new file mode 100644
index 000000000..beef77284
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-armv6.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json
new file mode 100644
index 000000000..4f7144b40
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android-x86.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json
new file mode 100644
index 000000000..2fa9c06fd
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-beta_android.json
@@ -0,0 +1,33 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json
new file mode 100644
index 000000000..57406c739
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-armv6.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json
new file mode 100644
index 000000000..24075237e
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android-x86.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/release_mozilla-release_android.json b/testing/mozharness/configs/multi_locale/release_mozilla-release_android.json
new file mode 100644
index 000000000..e295a13eb
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/release_mozilla-release_android.json
@@ -0,0 +1,33 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "production",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json
new file mode 100644
index 000000000..032e04ff7
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-armv6.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json
new file mode 100644
index 000000000..a055b0ab9
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android-x86.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json
new file mode 100644
index 000000000..1447ffd91
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-beta_android.json
@@ -0,0 +1,33 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json
new file mode 100644
index 000000000..5e2f26dc1
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-armv6.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json
new file mode 100644
index 000000000..68feec852
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android-x86.json
@@ -0,0 +1,34 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json
new file mode 100644
index 000000000..4ed17c487
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/staging_release_mozilla-release_android.json
@@ -0,0 +1,33 @@
+{
+ "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",
+ "branch": "default",
+ "dest": "build"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ },{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "l10n_repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "build/configs"
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "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"
+}
diff --git a/testing/mozharness/configs/multi_locale/standalone_mozilla-central.py b/testing/mozharness/configs/multi_locale/standalone_mozilla-central.py
new file mode 100644
index 000000000..36ad4de58
--- /dev/null
+++ b/testing/mozharness/configs/multi_locale/standalone_mozilla-central.py
@@ -0,0 +1,49 @@
+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,
+ "branch": "default",
+ "dest": BUILD_DIR,
+ }],
+ "vcs_share_base": "/builds/hg-shared",
+ "l10n_repos": [],
+ "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",
+ ],
+}
diff --git a/testing/mozharness/configs/partner_repacks/release_mozilla-esr52_desktop.py b/testing/mozharness/configs/partner_repacks/release_mozilla-esr52_desktop.py
new file mode 100644
index 000000000..604407e6a
--- /dev/null
+++ b/testing/mozharness/configs/partner_repacks/release_mozilla-esr52_desktop.py
@@ -0,0 +1,6 @@
+config = {
+ "appName": "Firefox",
+ "log_name": "partner_repack",
+ "repack_manifests_url": "https://github.com/mozilla-partners/mozilla-sha1-manifest",
+ "repo_file": "https://raw.githubusercontent.com/mozilla/git-repo/master/repo",
+}
diff --git a/testing/mozharness/configs/partner_repacks/release_mozilla-release_android.py b/testing/mozharness/configs/partner_repacks/release_mozilla-release_android.py
new file mode 100644
index 000000000..6978df8a2
--- /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",
+ "branch": "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",
+ },
+}
diff --git a/testing/mozharness/configs/partner_repacks/release_mozilla-release_desktop.py b/testing/mozharness/configs/partner_repacks/release_mozilla-release_desktop.py
new file mode 100644
index 000000000..229c2bb44
--- /dev/null
+++ b/testing/mozharness/configs/partner_repacks/release_mozilla-release_desktop.py
@@ -0,0 +1,6 @@
+config = {
+ "appName": "Firefox",
+ "log_name": "partner_repack",
+ "repack_manifests_url": "git@github.com:mozilla-partners/repack-manifests.git",
+ "repo_file": "https://raw.githubusercontent.com/mozilla/git-repo/master/repo",
+}
diff --git a/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_android.py b/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_android.py
new file mode 100644
index 000000000..ffb2392b6
--- /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",
+ "branch": "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",
+ },
+}
diff --git a/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_desktop.py b/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_desktop.py
new file mode 100644
index 000000000..229c2bb44
--- /dev/null
+++ b/testing/mozharness/configs/partner_repacks/staging_release_mozilla-release_desktop.py
@@ -0,0 +1,6 @@
+config = {
+ "appName": "Firefox",
+ "log_name": "partner_repack",
+ "repack_manifests_url": "git@github.com:mozilla-partners/repack-manifests.git",
+ "repo_file": "https://raw.githubusercontent.com/mozilla/git-repo/master/repo",
+}
diff --git a/testing/mozharness/configs/platform_supports_post_upload_to_latest.py b/testing/mozharness/configs/platform_supports_post_upload_to_latest.py
new file mode 100644
index 000000000..6ed654ed1
--- /dev/null
+++ b/testing/mozharness/configs/platform_supports_post_upload_to_latest.py
@@ -0,0 +1,3 @@
+config = {
+ 'platform_supports_post_upload_to_latest': False,
+}
diff --git a/testing/mozharness/configs/releases/bouncer_fennec.py b/testing/mozharness/configs/releases/bouncer_fennec.py
new file mode 100644
index 000000000..203c6679c
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_fennec.py
@@ -0,0 +1,22 @@
+# lint_ignore=E501
+config = {
+ "products": {
+ "apk": {
+ "product-name": "Fennec-%(version)s",
+ "check_uptake": True,
+ "alias": "fennec-latest",
+ "ssl-only": False,
+ "add-locales": False, # Do not add locales to let "multi" work
+ "paths": {
+ "android-api-15": {
+ "path": "/mobile/releases/%(version)s/android-api-15/:lang/fennec-%(version)s.:lang.android-arm.apk",
+ "bouncer-platform": "android",
+ },
+ "android-x86": {
+ "path": "/mobile/releases/%(version)s/android-x86/:lang/fennec-%(version)s.:lang.android-i386.apk",
+ "bouncer-platform": "android-x86",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/bouncer_firefox_beta.py b/testing/mozharness/configs/releases/bouncer_firefox_beta.py
new file mode 100644
index 000000000..6c563124c
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_firefox_beta.py
@@ -0,0 +1,148 @@
+# 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",
+ "check_uptake": True,
+ "alias": "firefox-beta-latest",
+ "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",
+ "check_uptake": True,
+ "alias": "firefox-beta-latest-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",
+ "check_uptake": True,
+ "alias": "firefox-beta-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",
+ },
+ },
+ },
+ "sha1-installer": {
+ "product-name": "Firefox-%(version)s-sha1",
+ "check_uptake": True,
+ "alias": "firefox-beta-sha1",
+ "ssl-only": True,
+ "add-locales": True,
+ "paths": {
+ "win32": {
+ "path": "/firefox/releases/%(version)s/win32-sha1/:lang/Firefox%%20Setup%%20%(version)s.exe",
+ "bouncer-platform": "win",
+ },
+ },
+ },
+ "complete-mar": {
+ "product-name": "Firefox-%(version)s-Complete",
+ "check_uptake": True,
+ "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",
+ "check_uptake": True,
+ "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/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/bouncer_firefox_esr.py b/testing/mozharness/configs/releases/bouncer_firefox_esr.py
new file mode 100644
index 000000000..747ff5664
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_firefox_esr.py
@@ -0,0 +1,136 @@
+# 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",
+ "check_uptake": True,
+ "alias": "firefox-esr-latest",
+ "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",
+ },
+ },
+ },
+ "installer-ssl": {
+ "product-name": "Firefox-%(version)s-SSL",
+ "check_uptake": True,
+ "alias": "firefox-esr-latest-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",
+ },
+ },
+ },
+ "sha1-installer": {
+ "product-name": "Firefox-%(version)s-sha1",
+ "check_uptake": True,
+ # XP/Vista Release users are redicted to ESR52
+ "alias": "firefox-sha1",
+ "ssl-only": True,
+ "add-locales": True,
+ "paths": {
+ "win32": {
+ "path": "/firefox/releases/%(version)s/win32-sha1/:lang/Firefox%%20Setup%%20%(version)s.exe",
+ "bouncer-platform": "win",
+ },
+ },
+ },
+ "complete-mar": {
+ "product-name": "Firefox-%(version)s-Complete",
+ "check_uptake": True,
+ "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",
+ "check_uptake": True,
+ "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/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/bouncer_firefox_release.py b/testing/mozharness/configs/releases/bouncer_firefox_release.py
new file mode 100644
index 000000000..59ecd20a2
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_firefox_release.py
@@ -0,0 +1,191 @@
+# 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",
+ "check_uptake": True,
+ "alias": "firefox-latest",
+ "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",
+ "check_uptake": True,
+ "alias": "firefox-latest-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",
+ "check_uptake": True,
+ "alias": "firefox-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",
+ },
+ },
+ },
+ "complete-mar": {
+ "product-name": "Firefox-%(version)s-Complete",
+ "check_uptake": True,
+ "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",
+ },
+ },
+ },
+ "complete-mar-candidates": {
+ "product-name": "Firefox-%(version)sbuild%(build_number)s-Complete",
+ "check_uptake": False,
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-i686/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-x86_64/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/mac/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win32/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win64/:lang/firefox-%(version)s.complete.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ },
+ "partials": {
+ "releases-dir": {
+ "product-name": "Firefox-%(version)s-Partial-%(prev_version)s",
+ "check_uptake": True,
+ "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/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ "candidates-dir": {
+ "product-name": "Firefox-%(version)sbuild%(build_number)s-Partial-%(prev_version)sbuild%(prev_build_number)s",
+ "check_uptake": False,
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-i686/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/candidates/%(version)s-candidates/build%(build_number)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/bouncer_thunderbird.py b/testing/mozharness/configs/releases/bouncer_thunderbird.py
new file mode 100644
index 000000000..5d0548a59
--- /dev/null
+++ b/testing/mozharness/configs/releases/bouncer_thunderbird.py
@@ -0,0 +1,169 @@
+# lint_ignore=E501
+config = {
+ "shipped-locales-url": "https://hg.mozilla.org/%(repo)s/raw-file/%(revision)s/mail/locales/shipped-locales",
+ "products": {
+ "installer": {
+ "product-name": "Thunderbird-%(version)s",
+ "check_uptake": True,
+ "alias": "thunderbird-latest",
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/thunderbird/releases/%(version)s/linux-i686/:lang/thunderbird-%(version)s.tar.bz2",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/thunderbird/releases/%(version)s/linux-x86_64/:lang/thunderbird-%(version)s.tar.bz2",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/thunderbird/releases/%(version)s/mac/:lang/Thunderbird%%20%(version)s.dmg",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/thunderbird/releases/%(version)s/win32/:lang/Thunderbird%%20Setup%%20%(version)s.exe",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-i386.tar.bz2",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-sparc.tar.bz2",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-i386.tar.bz2",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-sparc.tar.bz2",
+ "bouncer-platform": "solaris-sparc",
+ },
+ },
+ },
+ "installer-ssl": {
+ "product-name": "Thunderbird-%(version)s-SSL",
+ "check_uptake": True,
+ "ssl-only": True,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/thunderbird/releases/%(version)s/linux-i686/:lang/thunderbird-%(version)s.tar.bz2",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/thunderbird/releases/%(version)s/linux-x86_64/:lang/thunderbird-%(version)s.tar.bz2",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/thunderbird/releases/%(version)s/mac/:lang/Thunderbird%%20%(version)s.dmg",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/thunderbird/releases/%(version)s/win32/:lang/Thunderbird%%20Setup%%20%(version)s.exe",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-i386.tar.bz2",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-sparc.tar.bz2",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-i386.tar.bz2",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-sparc.tar.bz2",
+ "bouncer-platform": "solaris-sparc",
+ },
+ },
+ },
+ "complete-mar": {
+ "product-name": "Thunderbird-%(version)s-Complete",
+ "check_uptake": True,
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-i686/:lang/thunderbird-%(version)s.complete.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-x86_64/:lang/thunderbird-%(version)s.complete.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/thunderbird/releases/%(version)s/update/mac/:lang/thunderbird-%(version)s.complete.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/thunderbird/releases/%(version)s/update/win32/:lang/thunderbird-%(version)s.complete.mar",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-i386.complete.mar",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.opensolaris-sparc.complete.mar",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-i386.complete.mar",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(version)s.en-US.solaris-sparc.complete.mar",
+ "bouncer-platform": "solaris-sparc",
+ },
+ },
+ },
+ },
+ "partials": {
+ "releases-dir": {
+ "product-name": "Thunderbird-%(version)s-Partial-%(prev_version)s",
+ "check_uptake": True,
+ "ssl-only": False,
+ "add-locales": True,
+ "paths": {
+ "linux": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-i686/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux",
+ },
+ "linux64": {
+ "path": "/thunderbird/releases/%(version)s/update/linux-x86_64/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/thunderbird/releases/%(version)s/update/mac/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/thunderbird/releases/%(version)s/update/win32/:lang/thunderbird-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "opensolaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-i386.partial.mar",
+ "bouncer-platform": "opensolaris-i386",
+ },
+ "opensolaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.opensolaris-sparc.partial.mar",
+ "bouncer-platform": "opensolaris-sparc",
+ },
+ "solaris-i386": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-i386.partial.mar",
+ "bouncer-platform": "solaris-i386",
+ },
+ "solaris-sparc": {
+ "path": "/thunderbird/releases/%(version)s/contrib/solaris_tarball/thunderbird-%(prev_version)s-%(version)s.en-US.solaris-sparc.partial.mar",
+ "bouncer-platform": "solaris-sparc",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/dev_bouncer_firefox_beta.py b/testing/mozharness/configs/releases/dev_bouncer_firefox_beta.py
new file mode 100644
index 000000000..29c6e6cfb
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_bouncer_firefox_beta.py
@@ -0,0 +1,133 @@
+# lint_ignore=E501
+config = {
+ "products": {
+ "installer": {
+ "product-name": "Firefox-%(version)s",
+ "check_uptake": True,
+ "alias": "firefox-beta-latest",
+ "ssl-only": False,
+ "add-locales": False,
+ "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",
+ "check_uptake": True,
+ "ssl-only": True,
+ "add-locales": False,
+ "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",
+ "check_uptake": True,
+ "alias": "firefox-beta-stub",
+ "ssl-only": True,
+ "add-locales": False,
+ "paths": {
+ "win32": {
+ "path": "/firefox/releases/%(version)s/win32/:lang/Firefox%%20Setup%%20Stub%%20%(version)s.exe",
+ "bouncer-platform": "win",
+ },
+ },
+ },
+ "complete-mar": {
+ "product-name": "Firefox-%(version)s-Complete",
+ "check_uptake": True,
+ "ssl-only": False,
+ "add-locales": False,
+ "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",
+ "check_uptake": True,
+ "ssl-only": False,
+ "add-locales": False,
+ "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/releases/%(version)s/update/linux-x86_64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "linux64",
+ },
+ "macosx64": {
+ "path": "/firefox/releases/%(version)s/update/mac/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "osx",
+ },
+ "win32": {
+ "path": "/firefox/releases/%(version)s/update/win32/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win",
+ },
+ "win64": {
+ "path": "/firefox/releases/%(version)s/update/win64/:lang/firefox-%(prev_version)s-%(version)s.partial.mar",
+ "bouncer-platform": "win64",
+ },
+ },
+ },
+ },
+}
diff --git a/testing/mozharness/configs/releases/dev_postrelease_firefox_beta.py b/testing/mozharness/configs/releases/dev_postrelease_firefox_beta.py
new file mode 100644
index 000000000..4ecd32349
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_postrelease_firefox_beta.py
@@ -0,0 +1,20 @@
+config = {
+ # date is used for staging mozilla-beta
+ "log_name": "bump_date",
+ "version_files": [{"file": "browser/config/version_display.txt"}],
+ "repo": {
+ # date is used for staging mozilla-beta
+ "repo": "https://hg.mozilla.org/projects/date",
+ "branch": "default",
+ "dest": "date",
+ "vcs": "hg",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ },
+ # date is used for staging mozilla-beta
+ "push_dest": "ssh://hg.mozilla.org/projects/date",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ship_it_root": "https://ship-it-dev.allizom.org",
+ "ship_it_username": "ship_it-stage-ffxbld",
+}
diff --git a/testing/mozharness/configs/releases/dev_postrelease_firefox_release.py b/testing/mozharness/configs/releases/dev_postrelease_firefox_release.py
new file mode 100644
index 000000000..0a1497595
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_postrelease_firefox_release.py
@@ -0,0 +1,22 @@
+config = {
+ "log_name": "bump_release_dev",
+ "version_files": [
+ {"file": "browser/config/version.txt"},
+ {"file": "browser/config/version_display.txt"},
+ {"file": "config/milestone.txt"},
+ ],
+ "repo": {
+ # jamun is used for staging mozilla-release
+ "repo": "https://hg.mozilla.org/projects/jamun",
+ "branch": "default",
+ "dest": "jamun",
+ "vcs": "hg",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ },
+ "push_dest": "ssh://hg.mozilla.org/projects/jamun",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ship_it_root": "https://ship-it-dev.allizom.org",
+ "ship_it_username": "ship_it-stage-ffxbld",
+}
diff --git a/testing/mozharness/configs/releases/dev_updates_firefox_beta.py b/testing/mozharness/configs/releases/dev_updates_firefox_beta.py
new file mode 100644
index 000000000..40b87c57b
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_updates_firefox_beta.py
@@ -0,0 +1,39 @@
+
+config = {
+ "log_name": "bump_beta_dev",
+ # TODO: use real repo
+ "repo": {
+ "repo": "https://hg.mozilla.org/users/raliiev_mozilla.com/tools",
+ "branch": "default",
+ "dest": "tools",
+ "vcs": "hg",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ # TODO: use real repo
+ "push_dest": "ssh://hg.mozilla.org/users/raliiev_mozilla.com/tools",
+ # date repo used for staging beta
+ "shipped-locales-url": "https://hg.mozilla.org/projects/date/raw-file/{revision}/browser/locales/shipped-locales",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "archive_domain": "ftp.stage.mozaws.net",
+ "archive_prefix": "https://ftp.stage.mozaws.net/pub",
+ "previous_archive_prefix": "https://archive.mozilla.org/pub",
+ "download_domain": "download.mozilla.org",
+ "balrog_url": "http://ec2-54-241-39-23.us-west-1.compute.amazonaws.com",
+ "balrog_username": "balrog-stage-ffxbld",
+ "update_channels": {
+ "beta-dev": {
+ "version_regex": r"^(\d+\.\d+(b\d+)?)$",
+ "requires_mirrors": True,
+ # TODO - when we use a real repo, rename this file # s/MozDate/MozBeta-dev/
+ "patcher_config": "mozDate-branch-patcher2.cfg",
+ "update_verify_channel": "beta-dev-localtest",
+ "mar_channel_ids": [],
+ "channel_names": ["beta-dev", "beta-dev-localtest", "beta-dev-cdntest"],
+ "rules_to_update": ["firefox-beta-dev-cdntest", "firefox-beta-dev-localtest"],
+ "publish_rules": ["firefox-beta"],
+ }
+ },
+ "balrog_use_dummy_suffix": False,
+}
diff --git a/testing/mozharness/configs/releases/dev_updates_firefox_release.py b/testing/mozharness/configs/releases/dev_updates_firefox_release.py
new file mode 100644
index 000000000..8c2696b5b
--- /dev/null
+++ b/testing/mozharness/configs/releases/dev_updates_firefox_release.py
@@ -0,0 +1,50 @@
+
+config = {
+ "log_name": "updates_release_dev",
+ # TODO: use real repo
+ "repo": {
+ "repo": "https://hg.mozilla.org/users/raliiev_mozilla.com/tools",
+ "branch": "default",
+ "dest": "tools",
+ "vcs": "hg",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ # TODO: use real repo
+ "push_dest": "ssh://hg.mozilla.org/users/raliiev_mozilla.com/tools",
+ # jamun repo used for staging release
+ "shipped-locales-url": "https://hg.mozilla.org/projects/jamun/raw-file/{revision}/browser/locales/shipped-locales",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "archive_domain": "ftp.stage.mozaws.net",
+ "archive_prefix": "https://ftp.stage.mozaws.net/pub",
+ "previous_archive_prefix": "https://archive.mozilla.org/pub",
+ "download_domain": "download.mozilla.org",
+ "balrog_url": "http://ec2-54-241-39-23.us-west-1.compute.amazonaws.com",
+ "balrog_username": "balrog-stage-ffxbld",
+ "update_channels": {
+ "beta-dev": {
+ "version_regex": r"^(\d+\.\d+(b\d+)?)$",
+ "requires_mirrors": False,
+ "patcher_config": "mozDate-branch-patcher2.cfg",
+ "update_verify_channel": "beta-dev-localtest",
+ "mar_channel_ids": [
+ "firefox-mozilla-beta-dev", "firefox-mozilla-release-dev",
+ ],
+ "channel_names": ["beta-dev", "beta-dev-localtest", "beta-dev-cdntest"],
+ "rules_to_update": ["firefox-beta-dev-cdntest", "firefox-beta-dev-localtest"],
+ "publish_rules": ["firefox-beta"],
+ },
+ "release-dev": {
+ "version_regex": r"^\d+\.\d+(\.\d+)?$",
+ "requires_mirrors": True,
+ "patcher_config": "mozJamun-branch-patcher2.cfg",
+ "update_verify_channel": "release-dev-localtest",
+ "mar_channel_ids": [],
+ "channel_names": ["release-dev", "release-dev-localtest", "release-dev-cdntest"],
+ "rules_to_update": ["firefox-release-dev-cdntest", "firefox-release-dev-localtest"],
+ "publish_rules": ["firefox-release"],
+ },
+ },
+ "balrog_use_dummy_suffix": False,
+}
diff --git a/testing/mozharness/configs/releases/postrelease_firefox_beta.py b/testing/mozharness/configs/releases/postrelease_firefox_beta.py
new file mode 100644
index 000000000..b72302d91
--- /dev/null
+++ b/testing/mozharness/configs/releases/postrelease_firefox_beta.py
@@ -0,0 +1,18 @@
+config = {
+ "log_name": "bump_beta",
+ "version_files": [{"file": "browser/config/version_display.txt"}],
+ "repo": {
+ "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+ "branch": "default",
+ "dest": "mozilla-beta",
+ "vcs": "hg",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/releases/mozilla-beta",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ship_it_root": "https://ship-it.mozilla.org",
+ "ship_it_username": "ship_it-ffxbld",
+}
diff --git a/testing/mozharness/configs/releases/postrelease_firefox_esr52.py b/testing/mozharness/configs/releases/postrelease_firefox_esr52.py
new file mode 100644
index 000000000..ab461c0c8
--- /dev/null
+++ b/testing/mozharness/configs/releases/postrelease_firefox_esr52.py
@@ -0,0 +1,22 @@
+config = {
+ "log_name": "bump_esr52",
+ "version_files": [
+ {"file": "browser/config/version.txt"},
+ {"file": "browser/config/version_display.txt"},
+ {"file": "config/milestone.txt"},
+ ],
+ "repo": {
+ "repo": "https://hg.mozilla.org/releases/mozilla-esr52",
+ "branch": "default",
+ "dest": "mozilla-esr52",
+ "vcs": "hg",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/releases/mozilla-esr52",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ship_it_root": "https://ship-it.mozilla.org",
+ "ship_it_username": "ship_it-ffxbld",
+}
diff --git a/testing/mozharness/configs/releases/postrelease_firefox_release.py b/testing/mozharness/configs/releases/postrelease_firefox_release.py
new file mode 100644
index 000000000..31a1b2774
--- /dev/null
+++ b/testing/mozharness/configs/releases/postrelease_firefox_release.py
@@ -0,0 +1,22 @@
+config = {
+ "log_name": "bump_release",
+ "version_files": [
+ {"file": "browser/config/version.txt"},
+ {"file": "browser/config/version_display.txt"},
+ {"file": "config/milestone.txt"},
+ ],
+ "repo": {
+ "repo": "https://hg.mozilla.org/releases/mozilla-release",
+ "branch": "default",
+ "dest": "mozilla-release",
+ "vcs": "hg",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/releases/mozilla-release",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ship_it_root": "https://ship-it.mozilla.org",
+ "ship_it_username": "ship_it-ffxbld",
+}
diff --git a/testing/mozharness/configs/releases/updates_firefox_beta.py b/testing/mozharness/configs/releases/updates_firefox_beta.py
new file mode 100644
index 000000000..fa81e085f
--- /dev/null
+++ b/testing/mozharness/configs/releases/updates_firefox_beta.py
@@ -0,0 +1,35 @@
+
+config = {
+ "log_name": "updates_beta",
+ "repo": {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ "vcs": "hg",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/build/tools",
+ "shipped-locales-url": "https://hg.mozilla.org/releases/mozilla-beta/raw-file/{revision}/browser/locales/shipped-locales",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "archive_domain": "archive.mozilla.org",
+ "archive_prefix": "https://archive.mozilla.org/pub",
+ "previous_archive_prefix": "https://archive.mozilla.org/pub",
+ "download_domain": "download.mozilla.org",
+ "balrog_url": "https://aus5.mozilla.org",
+ "balrog_username": "balrog-ffxbld",
+ "update_channels": {
+ "beta": {
+ "version_regex": r"^(\d+\.\d+(b\d+)?)$",
+ "requires_mirrors": True,
+ "patcher_config": "mozBeta-branch-patcher2.cfg",
+ "update_verify_channel": "beta-localtest",
+ "mar_channel_ids": [],
+ "channel_names": ["beta", "beta-localtest", "beta-cdntest"],
+ "rules_to_update": ["firefox-beta-cdntest", "firefox-beta-localtest"],
+ "publish_rules": ["firefox-beta"],
+ },
+ },
+ "balrog_use_dummy_suffix": False,
+}
diff --git a/testing/mozharness/configs/releases/updates_firefox_esr52.py b/testing/mozharness/configs/releases/updates_firefox_esr52.py
new file mode 100644
index 000000000..6c5a05cf9
--- /dev/null
+++ b/testing/mozharness/configs/releases/updates_firefox_esr52.py
@@ -0,0 +1,35 @@
+
+config = {
+ "log_name": "updates_esr52",
+ "repo": {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ "vcs": "hg",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/build/tools",
+ "shipped-locales-url": "https://hg.mozilla.org/releases/mozilla-esr52/raw-file/{revision}/browser/locales/shipped-locales",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "archive_domain": "archive.mozilla.org",
+ "archive_prefix": "https://archive.mozilla.org/pub",
+ "previous_archive_prefix": "https://archive.mozilla.org/pub",
+ "download_domain": "download.mozilla.org",
+ "balrog_url": "https://aus5.mozilla.org",
+ "balrog_username": "balrog-ffxbld",
+ "update_channels": {
+ "esr": {
+ "version_regex": r".*",
+ "requires_mirrors": True,
+ "patcher_config": "mozEsr52-branch-patcher2.cfg",
+ "update_verify_channel": "esr-localtest",
+ "mar_channel_ids": [],
+ "channel_names": ["esr", "esr-localtest", "esr-cdntest"],
+ "rules_to_update": ["esr52-cdntest", "esr52-localtest"],
+ "publish_rules": [521],
+ },
+ },
+ "balrog_use_dummy_suffix": False,
+}
diff --git a/testing/mozharness/configs/releases/updates_firefox_release.py b/testing/mozharness/configs/releases/updates_firefox_release.py
new file mode 100644
index 000000000..58210d371
--- /dev/null
+++ b/testing/mozharness/configs/releases/updates_firefox_release.py
@@ -0,0 +1,47 @@
+
+config = {
+ "log_name": "updates_release",
+ "repo": {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ "vcs": "hg",
+ },
+ "vcs_share_base": "/builds/hg-shared",
+ "push_dest": "ssh://hg.mozilla.org/build/tools",
+ "shipped-locales-url": "https://hg.mozilla.org/releases/mozilla-release/raw-file/{revision}/browser/locales/shipped-locales",
+ "ignore_no_changes": True,
+ "ssh_user": "ffxbld",
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "archive_domain": "archive.mozilla.org",
+ "archive_prefix": "https://archive.mozilla.org/pub",
+ "previous_archive_prefix": "https://archive.mozilla.org/pub",
+ "download_domain": "download.mozilla.org",
+ "balrog_url": "https://aus5.mozilla.org",
+ "balrog_username": "balrog-ffxbld",
+ "update_channels": {
+ "beta": {
+ "version_regex": r"^(\d+\.\d+(b\d+)?)$",
+ "requires_mirrors": False,
+ "patcher_config": "mozBeta-branch-patcher2.cfg",
+ "update_verify_channel": "beta-localtest",
+ "mar_channel_ids": [
+ "firefox-mozilla-beta", "firefox-mozilla-release",
+ ],
+ "channel_names": ["beta", "beta-localtest", "beta-cdntest"],
+ "rules_to_update": ["firefox-beta-cdntest", "firefox-beta-localtest"],
+ "publish_rules": ["firefox-beta"],
+ },
+ "release": {
+ "version_regex": r"^\d+\.\d+(\.\d+)?$",
+ "requires_mirrors": True,
+ "patcher_config": "mozRelease-branch-patcher2.cfg",
+ "update_verify_channel": "release-localtest",
+ "mar_channel_ids": [],
+ "channel_names": ["release", "release-localtest", "release-cdntest"],
+ "rules_to_update": ["firefox-release-cdntest", "firefox-release-localtest"],
+ "publish_rules": ["firefox-release"],
+ },
+ },
+ "balrog_use_dummy_suffix": False,
+}
diff --git a/testing/mozharness/configs/releng_infra_configs/builders.py b/testing/mozharness/configs/releng_infra_configs/builders.py
new file mode 100644
index 000000000..3a6a8b595
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/builders.py
@@ -0,0 +1,47 @@
+# This config file has generic values needed for any job and any platform running
+# on Release Engineering machines inside the VPN
+from mozharness.base.script import platform_name
+
+# These are values specific to each platform on Release Engineering machines
+PYTHON_WIN32 = 'c:/mozilla-build/python27/python.exe'
+# These are values specific to running machines on Release Engineering machines
+# to run it locally on your machines append --cfg developer_config.py
+PLATFORM_CONFIG = {
+ 'linux64': {
+ 'exes': {
+ 'gittool.py': '/usr/local/bin/gittool.py',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ 'env': {
+ 'DISPLAY': ':2',
+ }
+ },
+ 'macosx': {
+ 'exes': {
+ 'gittool.py': '/usr/local/bin/gittool.py',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ },
+ 'win32': {
+ "exes": {
+ 'gittool.py': [PYTHON_WIN32, 'c:/builds/hg-shared/build/tools/buildfarm/utils/gittool.py'],
+ # Otherwise, depending on the PATH we can pick python 2.6 up
+ 'python': PYTHON_WIN32,
+ 'virtualenv': [PYTHON_WIN32, 'c:/mozilla-build/buildbotve/virtualenv.py'],
+ }
+ }
+}
+
+config = PLATFORM_CONFIG[platform_name()]
+# Generic values
+config.update({
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ 'pip_index': False,
+ 'virtualenv_path': 'venv',
+})
+
diff --git a/testing/mozharness/configs/releng_infra_configs/linux.py b/testing/mozharness/configs/releng_infra_configs/linux.py
new file mode 100644
index 000000000..dbac47935
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/linux.py
@@ -0,0 +1,5 @@
+config = {
+ 'env': {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux/minidump_stackwalk',
+ }
+}
diff --git a/testing/mozharness/configs/releng_infra_configs/linux64.py b/testing/mozharness/configs/releng_infra_configs/linux64.py
new file mode 100644
index 000000000..d7e97d6e8
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/linux64.py
@@ -0,0 +1,5 @@
+config = {
+ 'env': {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux64/minidump_stackwalk',
+ }
+}
diff --git a/testing/mozharness/configs/releng_infra_configs/macosx64.py b/testing/mozharness/configs/releng_infra_configs/macosx64.py
new file mode 100644
index 000000000..c0b5948cc
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/macosx64.py
@@ -0,0 +1,5 @@
+config = {
+ 'env': {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/osx64/minidump_stackwalk',
+ }
+}
diff --git a/testing/mozharness/configs/releng_infra_configs/testers.py b/testing/mozharness/configs/releng_infra_configs/testers.py
new file mode 100644
index 000000000..7f0ce2a7f
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/testers.py
@@ -0,0 +1,67 @@
+# This config file has generic values needed for any job and any platform running
+# on Release Engineering machines inside the VPN
+import os
+
+import mozharness
+
+from mozharness.base.script import platform_name
+
+external_tools_path = os.path.join(
+ os.path.abspath(os.path.dirname(os.path.dirname(mozharness.__file__))),
+ 'external_tools',
+)
+
+# These are values specific to each platform on Release Engineering machines
+PYTHON_WIN32 = 'c:/mozilla-build/python27/python.exe'
+# These are values specific to running machines on Release Engineering machines
+# to run it locally on your machines append --cfg developer_config.py
+PLATFORM_CONFIG = {
+ 'linux': {
+ 'exes': {
+ 'gittool.py': os.path.join(external_tools_path, 'gittool.py'),
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ 'env': {
+ 'DISPLAY': ':0',
+ 'PATH': '%(PATH)s:' + external_tools_path,
+ }
+ },
+ 'linux64': {
+ 'exes': {
+ 'gittool.py': os.path.join(external_tools_path, 'gittool.py'),
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ 'env': {
+ 'DISPLAY': ':0',
+ 'PATH': '%(PATH)s:' + external_tools_path,
+ }
+ },
+ 'macosx': {
+ 'exes': {
+ 'gittool.py': os.path.join(external_tools_path, 'gittool.py'),
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ 'env': {
+ 'PATH': '%(PATH)s:' + external_tools_path,
+ }
+ },
+ 'win32': {
+ "exes": {
+ 'gittool.py': [PYTHON_WIN32, os.path.join(external_tools_path, 'gittool.py')],
+ # Otherwise, depending on the PATH we can pick python 2.6 up
+ 'python': PYTHON_WIN32,
+ 'virtualenv': [PYTHON_WIN32, 'c:/mozilla-build/buildbotve/virtualenv.py'],
+ }
+ }
+}
+
+config = PLATFORM_CONFIG[platform_name()]
+# Generic values
+config.update({
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ 'pip_index': False,
+ 'virtualenv_path': 'venv',
+})
diff --git a/testing/mozharness/configs/releng_infra_configs/win32.py b/testing/mozharness/configs/releng_infra_configs/win32.py
new file mode 100644
index 000000000..778fa00d9
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/win32.py
@@ -0,0 +1,5 @@
+config = {
+ 'env': {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win32/minidump_stackwalk',
+ }
+}
diff --git a/testing/mozharness/configs/releng_infra_configs/win64.py b/testing/mozharness/configs/releng_infra_configs/win64.py
new file mode 100644
index 000000000..97968793e
--- /dev/null
+++ b/testing/mozharness/configs/releng_infra_configs/win64.py
@@ -0,0 +1,5 @@
+config = {
+ 'env': {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win64/minidump_stackwalk',
+ }
+}
diff --git a/testing/mozharness/configs/remove_executables.py b/testing/mozharness/configs/remove_executables.py
new file mode 100644
index 000000000..dec7a2965
--- /dev/null
+++ b/testing/mozharness/configs/remove_executables.py
@@ -0,0 +1,8 @@
+config = {
+ # We bake this directly into the tester image now...
+ "download_minidump_stackwalk": False,
+ "minidump_stackwalk_path": "/usr/local/bin/linux64-minidump_stackwalk",
+ "download_nodejs": False,
+ "nodejs_path": "/usr/local/bin/node",
+ "exes": {}
+}
diff --git a/testing/mozharness/configs/routes.json b/testing/mozharness/configs/routes.json
new file mode 100644
index 000000000..9596f4c97
--- /dev/null
+++ b/testing/mozharness/configs/routes.json
@@ -0,0 +1,18 @@
+{
+ "routes": [
+ "{index}.gecko.v2.{project}.revision.{head_rev}.{build_product}.{build_name}-{build_type}",
+ "{index}.gecko.v2.{project}.pushdate.{year}.{month}.{day}.{pushdate}.{build_product}.{build_name}-{build_type}",
+ "{index}.gecko.v2.{project}.latest.{build_product}.{build_name}-{build_type}"
+ ],
+ "nightly": [
+ "{index}.gecko.v2.{project}.nightly.{year}.{month}.{day}.revision.{head_rev}.{build_product}.{build_name}-{build_type}",
+ "{index}.gecko.v2.{project}.nightly.{year}.{month}.{day}.latest.{build_product}.{build_name}-{build_type}",
+ "{index}.gecko.v2.{project}.nightly.revision.{head_rev}.{build_product}.{build_name}-{build_type}",
+ "{index}.gecko.v2.{project}.nightly.latest.{build_product}.{build_name}-{build_type}"
+ ],
+ "l10n": [
+ "{index}.gecko.v2.{project}.revision.{head_rev}.{build_product}-l10n.{build_name}-{build_type}.{locale}",
+ "{index}.gecko.v2.{project}.pushdate.{year}.{month}.{day}.{pushdate}.{build_product}-l10n.{build_name}-{build_type}.{locale}",
+ "{index}.gecko.v2.{project}.latest.{build_product}-l10n.{build_name}-{build_type}.{locale}"
+ ]
+}
diff --git a/testing/mozharness/configs/selfserve/production.py b/testing/mozharness/configs/selfserve/production.py
new file mode 100644
index 000000000..f28c6c1ff
--- /dev/null
+++ b/testing/mozharness/configs/selfserve/production.py
@@ -0,0 +1,3 @@
+config = {
+ "selfserve_url": "https://secure.pub.build.mozilla.org/buildapi/self-serve",
+}
diff --git a/testing/mozharness/configs/selfserve/staging.py b/testing/mozharness/configs/selfserve/staging.py
new file mode 100644
index 000000000..e0ab70090
--- /dev/null
+++ b/testing/mozharness/configs/selfserve/staging.py
@@ -0,0 +1,3 @@
+config = {
+ "selfserve_url": "https://secure-pub-build.allizom.org/buildapi/self-serve",
+}
diff --git a/testing/mozharness/configs/servo/mac.py b/testing/mozharness/configs/servo/mac.py
new file mode 100644
index 000000000..c97f935bc
--- /dev/null
+++ b/testing/mozharness/configs/servo/mac.py
@@ -0,0 +1,3 @@
+config = {
+ 'concurrency': 6,
+}
diff --git a/testing/mozharness/configs/single_locale/alder.py b/testing/mozharness/configs/single_locale/alder.py
new file mode 100644
index 000000000..e2fc0e6a3
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/alder.py
@@ -0,0 +1,46 @@
+# This configuration uses mozilla-central binaries (en-US, localized complete
+# mars) and urls but it generates 'alder' artifacts. With this setup, binaries
+# generated on alder are NOT overwriting mozilla-central files.
+# Using this configuration, on a successful build, artifacts will be uploaded
+# here:
+#
+# * http://dev-stage01.srv.releng.scl3.mozilla.com/pub/mozilla.org/firefox/nightly/latest-alder-l10n/
+# (in staging environment)
+# * https://ftp.mozilla.org/pub/firefox/nightly/latest-alder-l10n/
+# (in production environment)
+#
+# If you really want to have localized alder builds, use the use the following
+# values:
+# * "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/alder-%(platform)s/latest/",
+# * "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/alder-%(platform)s/latest/",
+# * "repo": "https://hg.mozilla.org/projects/alder",
+#
+
+config = {
+ "nightly_build": True,
+ "branch": "alder",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/",
+ "update_channel": "nightly",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+
+ # mar
+ "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/mar-tools/%(platform)s",
+
+ # repositories
+ "mozilla_dir": "alder",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/mozilla-central",
+ "branch": "default",
+ "dest": "alder",
+ }],
+ # purge options
+ 'is_automation': True,
+}
diff --git a/testing/mozharness/configs/single_locale/ash.py b/testing/mozharness/configs/single_locale/ash.py
new file mode 100644
index 000000000..3036d4fba
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/ash.py
@@ -0,0 +1,46 @@
+# This configuration uses mozilla-central binaries (en-US, localized complete
+# mars) and urls but it generates 'ash' artifacts. With this setup, binaries
+# generated on ash are NOT overwriting mozilla-central files.
+# Using this configuration, on a successful build, artifacts will be uploaded
+# here:
+#
+# * http://dev-stage01.srv.releng.scl3.mozilla.com/pub/mozilla.org/firefox/nightly/latest-ash-l10n/
+# (in staging environment)
+# * https://ftp.mozilla.org/pub/firefox/nightly/latest-ash-l10n/
+# (in production environment)
+#
+# If you really want to have localized ash builds, use the use the following
+# values:
+# * "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/ash-%(platform)s/latest/",
+# * "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/ash-%(platform)s/latest/",
+# * "repo": "https://hg.mozilla.org/projects/ash",
+#
+
+config = {
+ "nightly_build": True,
+ "branch": "ash",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/",
+ "update_channel": "nightly",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+
+ # mar
+ "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/mar-tools/%(platform)s",
+
+ # repositories
+ "mozilla_dir": "ash",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/mozilla-central",
+ "branch": "default",
+ "dest": "ash",
+ }],
+ # purge options
+ 'is_automation': True,
+}
diff --git a/testing/mozharness/configs/single_locale/ash_android-api-15.py b/testing/mozharness/configs/single_locale/ash_android-api-15.py
new file mode 100644
index 000000000..d3cae75b7
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/ash_android-api-15.py
@@ -0,0 +1,97 @@
+BRANCH = "ash"
+MOZ_UPDATE_CHANNEL = "nightly"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-15/en-US" % BRANCH
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "branch": BRANCH,
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+ "locales_dir": "mobile/android/locales",
+ "ignore_locales": ["en-US"],
+ "nightly_build": True,
+ 'balrog_credentials_file': 'oauth.txt',
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/projects/ash",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+
+ "l10n_dir": "l10n-central",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_OBJDIR": OBJDIR,
+ "EN_US_BINARY_URL": EN_US_BINARY_URL,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "stage_product": "mobile",
+ "platform": "android",
+ "build_type": "api-15-opt",
+
+ # Balrog
+ "build_target": "Android_arm-eabi-gcc3",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/dev-mozilla-beta.py b/testing/mozharness/configs/single_locale/dev-mozilla-beta.py
new file mode 100644
index 000000000..ef96b9b7c
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/dev-mozilla-beta.py
@@ -0,0 +1,37 @@
+config = {
+ "branch": "date",
+ "nightly_build": True,
+ "update_channel": "beta-dev",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+
+ # repositories
+ # staging beta dev releases use date repo for now
+ "mozilla_dir": "date",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/projects/date",
+ "branch": "%(revision)s",
+ "dest": "date",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'is_automation': True,
+ 'purge_minsize': 12,
+ 'default_actions': [
+ "clobber",
+ "pull",
+ "clone-locales",
+ "list-locales",
+ "setup",
+ "repack",
+ "taskcluster-upload",
+ "summary",
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/dev-mozilla-release.py b/testing/mozharness/configs/single_locale/dev-mozilla-release.py
new file mode 100644
index 000000000..09048310b
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/dev-mozilla-release.py
@@ -0,0 +1,37 @@
+config = {
+ "branch": "jamun",
+ "nightly_build": True,
+ "update_channel": "release-dev",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+
+ # repositories
+ # staging release uses jamun
+ "mozilla_dir": "jamun",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/projects/jamun",
+ "branch": "%(revision)s",
+ "dest": "jamun",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'purge_minsize': 12,
+ 'is_automation': True,
+ 'default_actions': [
+ "clobber",
+ "pull",
+ "clone-locales",
+ "list-locales",
+ "setup",
+ "repack",
+ "taskcluster-upload",
+ "summary",
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/linux.py b/testing/mozharness/configs/single_locale/linux.py
new file mode 100644
index 000000000..3aa2c0349
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/linux.py
@@ -0,0 +1,123 @@
+import os
+
+config = {
+ "platform": "linux",
+ "stage_product": "firefox",
+ "update_platform": "Linux_x86-gcc3",
+ "mozconfig": "%(branch)s/browser/config/mozconfigs/linux32/l10n-mozconfig",
+ "bootstrap_env": {
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ },
+ "ssh_key_dir": "/home/mock_mozilla/.ssh",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "js_src_dir": "js/src",
+ "vcs_share_base": "/builds/hg-shared",
+
+ # tooltool
+ 'tooltool_url': 'https://api.pub.build.mozilla.org/tooltool/',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/linux32/releng.manifest',
+ # balrog credential file:
+ 'balrog_credentials_file': 'oauth.txt',
+
+ # l10n
+ "ignore_locales": ["en-US", "ja-JP-mac"],
+ "l10n_dir": "l10n",
+ "locales_file": "%(branch)s/browser/locales/all-locales",
+ "locales_dir": "browser/locales",
+ "hg_l10n_tag": "default",
+ "merge_locales": True,
+
+ # MAR
+ "previous_mar_dir": "dist/previous",
+ "current_mar_dir": "dist/current",
+ "update_mar_dir": "dist/update", # sure?
+ "previous_mar_filename": "previous.mar",
+ "current_work_mar_dir": "current.work",
+ "package_base_dir": "dist/l10n-stage",
+ "application_ini": "application.ini",
+ "buildid_section": 'App',
+ "buildid_option": "BuildID",
+ "unpack_script": "tools/update-packaging/unwrap_full_update.pl",
+ "incremental_update_script": "tools/update-packaging/make_incremental_update.sh",
+ "balrog_release_pusher_script": "scripts/updates/balrog-release-pusher.py",
+ "update_packaging_dir": "tools/update-packaging",
+ "local_mar_tool_dir": "dist/host/bin",
+ "mar": "mar",
+ "mbsdiff": "mbsdiff",
+ "current_mar_filename": "firefox-%(version)s.%(locale)s.linux-i686.complete.mar",
+ "complete_mar": "firefox-%(version)s.en-US.linux-i686.complete.mar",
+ "localized_mar": "firefox-%(version)s.%(locale)s.linux-i686.complete.mar",
+ "partial_mar": "firefox-%(version)s.%(locale)s.linux-i686.partial.%(from_buildid)s-%(to_buildid)s.mar",
+ 'installer_file': "firefox-%(version)s.en-US.linux-i686.tar.bz2",
+
+ # Mock
+ 'mock_target': 'mozilla-centos6-x86_64',
+ '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 ###########
+ ],
+ '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'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/linux32.py b/testing/mozharness/configs/single_locale/linux32.py
new file mode 120000
index 000000000..e9866bbbf
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/linux32.py
@@ -0,0 +1 @@
+linux.py \ No newline at end of file
diff --git a/testing/mozharness/configs/single_locale/linux64.py b/testing/mozharness/configs/single_locale/linux64.py
new file mode 100644
index 000000000..8a511e56d
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/linux64.py
@@ -0,0 +1,103 @@
+import os
+
+config = {
+ "platform": "linux64",
+ "stage_product": "firefox",
+ "update_platform": "Linux_x86_64-gcc3",
+ "mozconfig": "%(branch)s/browser/config/mozconfigs/linux64/l10n-mozconfig",
+ "bootstrap_env": {
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ },
+ "ssh_key_dir": "/home/mock_mozilla/.ssh",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "js_src_dir": "js/src",
+ "vcs_share_base": "/builds/hg-shared",
+
+ # tooltool
+ 'tooltool_url': 'https://api.pub.build.mozilla.org/tooltool/',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/linux64/releng.manifest',
+ # balrog credential file:
+ 'balrog_credentials_file': 'oauth.txt',
+
+ # l10n
+ "ignore_locales": ["en-US", "ja-JP-mac"],
+ "l10n_dir": "l10n",
+ "locales_file": "%(branch)s/browser/locales/all-locales",
+ "locales_dir": "browser/locales",
+ "hg_l10n_tag": "default",
+ "merge_locales": True,
+
+ # MAR
+ "previous_mar_dir": "dist/previous",
+ "current_mar_dir": "dist/current",
+ "update_mar_dir": "dist/update", # sure?
+ "previous_mar_filename": "previous.mar",
+ "current_work_mar_dir": "current.work",
+ "package_base_dir": "dist/l10n-stage",
+ "application_ini": "application.ini",
+ "buildid_section": 'App',
+ "buildid_option": "BuildID",
+ "unpack_script": "tools/update-packaging/unwrap_full_update.pl",
+ "incremental_update_script": "tools/update-packaging/make_incremental_update.sh",
+ "balrog_release_pusher_script": "scripts/updates/balrog-release-pusher.py",
+ "update_packaging_dir": "tools/update-packaging",
+ "local_mar_tool_dir": "dist/host/bin",
+ "mar": "mar",
+ "mbsdiff": "mbsdiff",
+ "current_mar_filename": "firefox-%(version)s.%(locale)s.linux-x86_64.complete.mar",
+ "complete_mar": "firefox-%(version)s.en-US.linux-x86_64.complete.mar",
+ "localized_mar": "firefox-%(version)s.%(locale)s.linux-x86_64.complete.mar",
+ "partial_mar": "firefox-%(version)s.%(locale)s.linux-x86_64.partial.%(from_buildid)s-%(to_buildid)s.mar",
+ "installer_file": "firefox-%(version)s.en-US.linux-x86_64.tar.bz2",
+
+ # Mock
+ 'mock_target': 'mozilla-centos6-x86_64',
+
+ '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'
+ ],
+ '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'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/macosx64.py b/testing/mozharness/configs/single_locale/macosx64.py
new file mode 100644
index 000000000..c2ee47674
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/macosx64.py
@@ -0,0 +1,72 @@
+import os
+
+config = {
+ # mozconfig file to use, it depends on branch and platform names
+ "platform": "macosx64",
+ "stage_product": "firefox",
+ "update_platform": "Darwin_x86_64-gcc3",
+ "mozconfig": "%(branch)s/browser/config/mozconfigs/macosx-universal/l10n-mozconfig",
+ "bootstrap_env": {
+ "SHELL": '/bin/bash',
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "MOZ_PKG_PLATFORM": "mac",
+ # "IS_NIGHTLY": "yes",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ },
+ "ssh_key_dir": "~/.ssh",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "js_src_dir": "js/src",
+ "vcs_share_base": "/builds/hg-shared",
+
+ "upload_env_extra": {
+ "MOZ_PKG_PLATFORM": "mac",
+ },
+
+ # tooltool
+ 'tooltool_url': 'https://api.pub.build.mozilla.org/tooltool/',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
+ # balrog credential file:
+ 'balrog_credentials_file': 'oauth.txt',
+
+ # l10n
+ "ignore_locales": ["en-US", "ja"],
+ "l10n_dir": "l10n",
+ "locales_file": "%(branch)s/browser/locales/all-locales",
+ "locales_dir": "browser/locales",
+ "hg_l10n_tag": "default",
+ "merge_locales": True,
+
+ # MAR
+ "previous_mar_dir": "dist/previous",
+ "current_mar_dir": "dist/current",
+ "update_mar_dir": "dist/update", # sure?
+ "previous_mar_filename": "previous.mar",
+ "current_work_mar_dir": "current.work",
+ "package_base_dir": "dist/l10n-stage",
+ "application_ini": "Contents/Resources/application.ini",
+ "buildid_section": 'App',
+ "buildid_option": "BuildID",
+ "unpack_script": "tools/update-packaging/unwrap_full_update.pl",
+ "incremental_update_script": "tools/update-packaging/make_incremental_update.sh",
+ "balrog_release_pusher_script": "scripts/updates/balrog-release-pusher.py",
+ "update_packaging_dir": "tools/update-packaging",
+ "local_mar_tool_dir": "dist/host/bin",
+ "mar": "mar",
+ "mbsdiff": "mbsdiff",
+ "current_mar_filename": "firefox-%(version)s.%(locale)s.mac.complete.mar",
+ "complete_mar": "firefox-%(version)s.en-US.mac.complete.mar",
+ "localized_mar": "firefox-%(version)s.%(locale)s.mac.complete.mar",
+ "partial_mar": "firefox-%(version)s.%(locale)s.mac.partial.%(from_buildid)s-%(to_buildid)s.mar",
+ 'installer_file': "firefox-%(version)s.en-US.mac.dmg",
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-aurora.py b/testing/mozharness/configs/single_locale/mozilla-aurora.py
new file mode 100644
index 000000000..1ce85f726
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-aurora.py
@@ -0,0 +1,29 @@
+config = {
+ "nightly_build": True,
+ "branch": "mozilla-aurora",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/",
+ "update_channel": "aurora",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-aurora",
+
+ # mar
+ "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/mar-tools/%(platform)s",
+
+ # repositories
+ "mozilla_dir": "mozilla-aurora",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/releases/mozilla-aurora",
+ "branch": "default",
+ "dest": "mozilla-aurora",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'is_automation': True,
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py b/testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py
new file mode 100644
index 000000000..103922a78
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-aurora"
+MOZ_UPDATE_CHANNEL = "aurora"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-15/en-US" % BRANCH
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "branch": BRANCH,
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+ "locales_dir": "mobile/android/locales",
+ "ignore_locales": ["en-US"],
+ "nightly_build": True,
+ 'balrog_credentials_file': 'oauth.txt',
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/releases/mozilla-aurora",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+
+ "l10n_dir": MOZILLA_DIR,
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_OBJDIR": OBJDIR,
+ "EN_US_BINARY_URL": EN_US_BINARY_URL,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "stage_product": "mobile",
+ "platform": "android",
+ "build_type": "api-15-opt",
+
+ # Balrog
+ "build_target": "Android_arm-eabi-gcc3",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-beta.py b/testing/mozharness/configs/single_locale/mozilla-beta.py
new file mode 100644
index 000000000..90ff23027
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-beta.py
@@ -0,0 +1,37 @@
+config = {
+ "nightly_build": True,
+ "branch": "mozilla-beta",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-beta/",
+ "update_channel": "beta",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-beta",
+
+ # repositories
+ "mozilla_dir": "mozilla-beta",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+ "revision": "%(revision)s",
+ "dest": "mozilla-beta",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'purge_minsize': 12,
+ 'is_automation': True,
+ 'default_actions': [
+ "clobber",
+ "pull",
+ "clone-locales",
+ "list-locales",
+ "setup",
+ "repack",
+ "taskcluster-upload",
+ "summary",
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-central.py b/testing/mozharness/configs/single_locale/mozilla-central.py
new file mode 100644
index 000000000..c2bf974d6
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-central.py
@@ -0,0 +1,29 @@
+config = {
+ "nightly_build": True,
+ "branch": "mozilla-central",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/",
+ "update_channel": "nightly",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+
+ # mar
+ "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/mar-tools/%(platform)s",
+
+ # repositories
+ "mozilla_dir": "mozilla-central",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/mozilla-central",
+ "revision": "%(revision)s",
+ "dest": "mozilla-central",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'is_automation': True,
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py b/testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py
new file mode 100644
index 000000000..d2b6623c3
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-central"
+MOZ_UPDATE_CHANNEL = "nightly"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-15/en-US" % BRANCH
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "branch": BRANCH,
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+ "locales_dir": "mobile/android/locales",
+ "ignore_locales": ["en-US"],
+ "nightly_build": True,
+ 'balrog_credentials_file': 'oauth.txt',
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/mozilla-central",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+
+ "l10n_dir": "l10n-central",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_OBJDIR": OBJDIR,
+ "EN_US_BINARY_URL": EN_US_BINARY_URL,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "stage_product": "mobile",
+ "platform": "android",
+ "build_type": "api-15-opt",
+
+ # Balrog
+ "build_target": "Android_arm-eabi-gcc3",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-esr52.py b/testing/mozharness/configs/single_locale/mozilla-esr52.py
new file mode 100644
index 000000000..0d01f1340
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-esr52.py
@@ -0,0 +1,37 @@
+config = {
+ "nightly_build": True,
+ "branch": "mozilla-esr52",
+ "en_us_binary_url": "https://archive.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-esr52/",
+ "update_channel": "esr",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+
+ # repositories
+ "mozilla_dir": "mozilla-esr52",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/releases/mozilla-esr52",
+ "revision": "%(revision)s",
+ "dest": "mozilla-esr52",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'purge_minsize': 12,
+ 'is_automation': True,
+ 'default_actions': [
+ "clobber",
+ "pull",
+ "clone-locales",
+ "list-locales",
+ "setup",
+ "repack",
+ "taskcluster-upload",
+ "summary",
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/mozilla-release.py b/testing/mozharness/configs/single_locale/mozilla-release.py
new file mode 100644
index 000000000..f02ea2ca9
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-release.py
@@ -0,0 +1,37 @@
+config = {
+ "nightly_build": True,
+ "branch": "mozilla-release",
+ "en_us_binary_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-release/",
+ "update_channel": "release",
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/mozilla-release",
+
+ # repositories
+ "mozilla_dir": "mozilla-release",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/releases/mozilla-release",
+ "revision": "%(revision)s",
+ "dest": "mozilla-release",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ }],
+ # purge options
+ 'purge_minsize': 12,
+ 'is_automation': True,
+ 'default_actions': [
+ "clobber",
+ "pull",
+ "clone-locales",
+ "list-locales",
+ "setup",
+ "repack",
+ "taskcluster-upload",
+ "summary",
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/production.py b/testing/mozharness/configs/single_locale/production.py
new file mode 100644
index 000000000..fe97fe361
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/production.py
@@ -0,0 +1,14 @@
+config = {
+ "upload_environment": "prod",
+ "upload_env": {
+ "UPLOAD_USER": "ffxbld",
+ # ssh_key_dir is defined per platform: it is "~/.ssh" for every platform
+ # except when mock is in use, in this case, ssh_key_dir is
+ # /home/mock_mozilla/.ssh
+ "UPLOAD_SSH_KEY": "%(ssh_key_dir)s/ffxbld_rsa",
+ "UPLOAD_HOST": "upload.ffxbld.productdelivery.prod.mozaws.net",
+ "POST_UPLOAD_CMD": "post_upload.py -b %(branch)s-l10n -p %(stage_product)s -i %(buildid)s --release-to-latest --release-to-dated",
+ "UPLOAD_TO_TEMP": "1"
+ },
+ 'taskcluster_index': 'index',
+}
diff --git a/testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py b/testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py
new file mode 100644
index 000000000..976f21f44
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-beta"
+MOZ_UPDATE_CHANNEL = "beta"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "stage_product": "mobile",
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
+ "locales_dir": "mobile/android/locales",
+ "locales_platform": "android",
+ "ignore_locales": ["en-US"],
+ "balrog_credentials_file": "oauth.txt",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "is_release_or_beta": True,
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+ "l10n_dir": MOZILLA_DIR,
+
+ "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-beta.py",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_PKG_VERSION": "%(version)s",
+ "MOZ_OBJDIR": OBJDIR,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "base_en_us_binary_url": EN_US_BINARY_URL,
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates %(post_upload_extra)s",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "key_alias": "release",
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/adjust-sdk-beta.token', '/builds/adjust-sdk-beta.token'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py b/testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py
new file mode 100644
index 000000000..22d0074bb
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-release"
+MOZ_UPDATE_CHANNEL = "release"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "stage_product": "mobile",
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+ "locales_dir": "mobile/android/locales",
+ "locales_platform": "android",
+ "ignore_locales": ["en-US"],
+ "balrog_credentials_file": "oauth.txt",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "is_release_or_beta": True,
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/releases/mozilla-release",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/build/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+ "l10n_dir": MOZILLA_DIR,
+
+ "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-release.py",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_PKG_VERSION": "%(version)s",
+ "MOZ_OBJDIR": OBJDIR,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "base_en_us_binary_url": EN_US_BINARY_URL,
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates %(post_upload_extra)s",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "key_alias": "release",
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/staging.py b/testing/mozharness/configs/single_locale/staging.py
new file mode 100644
index 000000000..82caa8dda
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/staging.py
@@ -0,0 +1,17 @@
+config = {
+ "upload_environment": "stage",
+ "upload_env": {
+ "UPLOAD_USER": "ffxbld",
+ # ssh_key_dir is defined per platform: it is "~/.ssh" for every platform
+ # except when mock is in use, in this case, ssh_key_dir is
+ # /home/mock_mozilla/.ssh
+ "UPLOAD_SSH_KEY": "%(ssh_key_dir)s/ffxbld_rsa",
+ "UPLOAD_HOST": "upload.ffxbld.productdelivery.stage.mozaws.net",
+ "POST_UPLOAD_CMD": "post_upload.py -b %(branch)s-l10n -p %(stage_product)s -i %(buildid)s --release-to-latest --release-to-dated %(post_upload_extra)s",
+ "UPLOAD_TO_TEMP": "1"
+ },
+ 'taskcluster_index': 'index.garbage.staging',
+ 'post_upload_extra': ['--bucket-prefix', 'net-mozaws-stage-delivery',
+ '--url-prefix', 'http://ftp.stage.mozaws.net/',
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py b/testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py
new file mode 100644
index 000000000..7f7d3e4e2
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-beta"
+MOZ_UPDATE_CHANNEL = "beta"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+STAGE_SERVER = "ftp.stage.mozaws.net"
+EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+ "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
+ "locales_dir": "mobile/android/locales",
+ "locales_platform": "android",
+ "ignore_locales": ["en-US"],
+ "balrog_credentials_file": "oauth.txt",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "is_release_or_beta": True,
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+ "l10n_dir": MOZILLA_DIR,
+
+ "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-beta.py",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_PKG_VERSION": "%(version)s",
+ "MOZ_OBJDIR": OBJDIR,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "base_en_us_binary_url": EN_US_BINARY_URL,
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates %(post_upload_extra)s",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/adjust-sdk-beta.token', '/builds/adjust-sdk-beta.token'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py b/testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py
new file mode 100644
index 000000000..da4803a60
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-release"
+MOZ_UPDATE_CHANNEL = "release"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+STAGE_SERVER = "dev-stage01.srv.releng.scl3.mozilla.com"
+EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+ "log_name": "single_locale",
+ "objdir": OBJDIR,
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+ "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+ "locales_dir": "mobile/android/locales",
+ "locales_platform": "android",
+ "ignore_locales": ["en-US"],
+ "balrog_credentials_file": "oauth.txt",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "is_release_or_beta": True,
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "repos": [{
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
+ "branch": "default",
+ "dest": MOZILLA_DIR,
+ }, {
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+ "branch": "default",
+ "dest": "buildbot-configs"
+ }, {
+ "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+ "l10n_dir": MOZILLA_DIR,
+
+ "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-release.py",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_PKG_VERSION": "%(version)s",
+ "MOZ_OBJDIR": OBJDIR,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+ },
+ "base_en_us_binary_url": EN_US_BINARY_URL,
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates %(post_upload_extra)s",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/tc_android-api-15.py b/testing/mozharness/configs/single_locale/tc_android-api-15.py
new file mode 100644
index 000000000..f15b254dc
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/tc_android-api-15.py
@@ -0,0 +1,18 @@
+import os
+
+config = {
+ "locales_file": "src/mobile/android/locales/all-locales",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "mozconfig": "src/mobile/android/config/mozconfigs/android-api-15/l10n-nightly",
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/src",
+ },
+ "tooltool_servers": ['http://relengapi/tooltool/'],
+
+ "upload_env": {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': '/home/worker/artifacts/',
+ },
+ "mozilla_dir": "src/",
+}
diff --git a/testing/mozharness/configs/single_locale/tc_linux32.py b/testing/mozharness/configs/single_locale/tc_linux32.py
new file mode 100644
index 000000000..3045138f8
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/tc_linux32.py
@@ -0,0 +1,24 @@
+import os
+
+config = {
+ "locales_file": "src/browser/locales/all-locales",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "mozconfig": "src/browser/config/mozconfigs/linux32/l10n-mozconfig",
+ "bootstrap_env": {
+ "NO_MERCURIAL_SETUP_CHECK": "1",
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ 'TOOLTOOL_CACHE': os.environ.get('TOOLTOOL_CACHE'),
+ },
+ "upload_env": {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': '/home/worker/artifacts/',
+ },
+ "mozilla_dir": "src/",
+}
diff --git a/testing/mozharness/configs/single_locale/tc_linux64.py b/testing/mozharness/configs/single_locale/tc_linux64.py
new file mode 100644
index 000000000..28a4c6f56
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/tc_linux64.py
@@ -0,0 +1,24 @@
+import os
+
+config = {
+ "locales_file": "src/browser/locales/all-locales",
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "mozconfig": "src/browser/config/mozconfigs/linux64/l10n-mozconfig",
+ "bootstrap_env": {
+ "NO_MERCURIAL_SETUP_CHECK": "1",
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ 'TOOLTOOL_CACHE': os.environ.get('TOOLTOOL_CACHE'),
+ },
+ "upload_env": {
+ 'UPLOAD_HOST': 'localhost',
+ 'UPLOAD_PATH': '/home/worker/artifacts/',
+ },
+ "mozilla_dir": "src/",
+}
diff --git a/testing/mozharness/configs/single_locale/try.py b/testing/mozharness/configs/single_locale/try.py
new file mode 100644
index 000000000..369159111
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/try.py
@@ -0,0 +1,42 @@
+config = {
+ "nightly_build": False,
+ "branch": "try",
+ "en_us_binary_url": "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central",
+ "update_channel": "nightly",
+ "update_gecko_source_to_enUS": False,
+
+ # l10n
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+
+ # mar
+ "mar_tools_url": "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-central/mar-tools/%(platform)s",
+
+ # repositories
+ "mozilla_dir": "try",
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/try",
+ "revision": "%(revision)s",
+ "dest": "try",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ "clone_by_revision": True,
+ "clone_with_purge": True,
+ }],
+ # purge options
+ 'is_automation': True,
+ "upload_env": {
+ "UPLOAD_USER": "trybld",
+ # ssh_key_dir is defined per platform: it is "~/.ssh" for every platform
+ # except when mock is in use, in this case, ssh_key_dir is
+ # /home/mock_mozilla/.ssh
+ "UPLOAD_SSH_KEY": "%(ssh_key_dir)s/trybld_dsa",
+ "UPLOAD_HOST": "upload.trybld.productdelivery.%(upload_environment)s.mozaws.net",
+ "POST_UPLOAD_CMD": "post_upload.py --who %(who)s --builddir %(branch)s-%(platform)s --tinderbox-builds-dir %(who)s-%(revision)s -p %(stage_product)s -i %(buildid)s --revision %(revision)s --release-to-try-builds %(post_upload_extra)s",
+ "UPLOAD_TO_TEMP": "1"
+ },
+}
diff --git a/testing/mozharness/configs/single_locale/try_android-api-15.py b/testing/mozharness/configs/single_locale/try_android-api-15.py
new file mode 100644
index 000000000..74d397b65
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/try_android-api-15.py
@@ -0,0 +1,97 @@
+BRANCH = "try"
+MOZILLA_DIR = BRANCH
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/" \
+ "mobile/nightly/latest-mozilla-central-android-api-15/en-US"
+
+config = {
+ "branch": "try",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "is_automation": True,
+ "buildbot_json_path": "buildprops.json",
+ "force_clobber": True,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+ "locales_dir": "mobile/android/locales",
+ "ignore_locales": ["en-US"],
+ "nightly_build": False,
+ 'balrog_credentials_file': 'oauth.txt',
+ "tools_repo": "https://hg.mozilla.org/build/tools",
+ "tooltool_config": {
+ "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+ },
+ "exes": {
+ 'tooltool.py': '/builds/tooltool.py',
+ },
+ "update_gecko_source_to_enUS": False,
+ "repos": [{
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools",
+ }, {
+ "vcs": "hg",
+ "repo": "https://hg.mozilla.org/try",
+ "revision": "%(revision)s",
+ "dest": "try",
+ "clone_upstream_url": "https://hg.mozilla.org/mozilla-unified",
+ "clone_by_revision": True,
+ "clone_with_purge": True,
+ }],
+ "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+ "hg_l10n_tag": "default",
+ 'vcs_share_base': "/builds/hg-shared",
+
+ "l10n_dir": "l10n-central",
+ "repack_env": {
+ # so ugly, bug 951238
+ "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": EN_US_BINARY_URL,
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+ "MOZ_UPDATE_CHANNEL": "try", # XXX Invalid
+ },
+ "upload_branch": "%s-android-api-15" % BRANCH,
+ "ssh_key_dir": "~/.ssh",
+ "merge_locales": True,
+ "mozilla_dir": MOZILLA_DIR,
+ "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+ "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+ "stage_product": "mobile",
+ "platform": "android", # XXX Validate
+ "build_type": "api-15-opt", # XXX Validate
+
+ # Balrog
+ "build_target": "Android_arm-eabi-gcc3",
+
+ # Mock
+ "mock_target": "mozilla-centos6-x86_64-android",
+ "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', '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!?!
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache', # <-- from releng repo
+ 'valgrind', 'dbus-x11',
+ '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',
+ 'java-1.7.0-openjdk-devel',
+ 'openssh-clients',
+ 'zlib-devel-1.2.3-27.el6.i686',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+ ],
+}
diff --git a/testing/mozharness/configs/single_locale/win32.py b/testing/mozharness/configs/single_locale/win32.py
new file mode 100644
index 000000000..ea07fff86
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/win32.py
@@ -0,0 +1,77 @@
+import os
+import sys
+
+config = {
+ "platform": "win32",
+ "stage_product": "firefox",
+ "update_platform": "WINNT_x86-msvc",
+ "mozconfig": "%(branch)s/browser/config/mozconfigs/win32/l10n-mozconfig",
+ "bootstrap_env": {
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ "PATH": 'C:\\mozilla-build\\nsis-3.01;'
+ '%s' % (os.environ.get('path')),
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ "ssh_key_dir": "~/.ssh",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "js_src_dir": "js/src",
+ "vcs_share_base": "c:/builds/hg-shared",
+
+ # tooltool
+ 'tooltool_url': 'https://api.pub.build.mozilla.org/tooltool/',
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/win32/releng.manifest',
+ # balrog credential file:
+ 'balrog_credentials_file': 'oauth.txt',
+
+ # l10n
+ "ignore_locales": ["en-US", "ja-JP-mac"],
+ "l10n_dir": "l10n",
+ "locales_file": "%(branch)s/browser/locales/all-locales",
+ "locales_dir": "browser/locales",
+ "hg_l10n_tag": "default",
+ "merge_locales": True,
+
+ # MAR
+ "previous_mar_dir": "dist\\previous",
+ "current_mar_dir": "dist\\current",
+ "update_mar_dir": "dist\\update", # sure?
+ "previous_mar_filename": "previous.mar",
+ "current_work_mar_dir": "current.work",
+ "package_base_dir": "dist\\l10n-stage",
+ "application_ini": "application.ini",
+ "buildid_section": 'App',
+ "buildid_option": "BuildID",
+ "unpack_script": "tools\\update-packaging\\unwrap_full_update.pl",
+ "incremental_update_script": "tools\\update-packaging\\make_incremental_update.sh",
+ "balrog_release_pusher_script": "scripts\\updates\\balrog-release-pusher.py",
+ "update_packaging_dir": "tools\\update-packaging",
+ "local_mar_tool_dir": "dist\\host\\bin",
+ "mar": "mar.exe",
+ "mbsdiff": "mbsdiff.exe",
+ "current_mar_filename": "firefox-%(version)s.%(locale)s.win32.complete.mar",
+ "complete_mar": "firefox-%(version)s.en-US.win32.complete.mar",
+ "localized_mar": "firefox-%(version)s.%(locale)s.win32.complete.mar",
+ "partial_mar": "firefox-%(version)s.%(locale)s.win32.partial.%(from_buildid)s-%(to_buildid)s.mar",
+ 'installer_file': "firefox-%(version)s.en-US.win32.installer.exe",
+
+ # use mozmake?
+ "enable_mozmake": True,
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ 'c:/mozilla-build/buildbotve/virtualenv.py'
+ ],
+ }
+}
diff --git a/testing/mozharness/configs/single_locale/win64.py b/testing/mozharness/configs/single_locale/win64.py
new file mode 100644
index 000000000..df553018f
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/win64.py
@@ -0,0 +1,77 @@
+import os
+import sys
+
+config = {
+ "platform": "win64",
+ "stage_product": "firefox",
+ "update_platform": "WINNT_x86_64-msvc",
+ "mozconfig": "%(branch)s/browser/config/mozconfigs/win64/l10n-mozconfig",
+ "bootstrap_env": {
+ "MOZ_OBJDIR": "obj-l10n",
+ "EN_US_BINARY_URL": "%(en_us_binary_url)s",
+ "MOZ_UPDATE_CHANNEL": "%(update_channel)s",
+ "DIST": "%(abs_objdir)s",
+ "LOCALE_MERGEDIR": "%(abs_merge_dir)s",
+ "L10NBASEDIR": "../../l10n",
+ "MOZ_MAKE_COMPLETE_MAR": "1",
+ "PATH": 'C:\\mozilla-build\\nsis-3.01;'
+ '%s' % (os.environ.get('path')),
+ 'TOOLTOOL_CACHE': '/c/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/c/builds',
+ },
+ "ssh_key_dir": "~/.ssh",
+ "log_name": "single_locale",
+ "objdir": "obj-l10n",
+ "js_src_dir": "js/src",
+ "vcs_share_base": "c:/builds/hg-shared",
+
+ # tooltool
+ 'tooltool_url': 'https://api.pub.build.mozilla.org/tooltool/',
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/win64/releng.manifest',
+ # balrog credential file:
+ 'balrog_credentials_file': 'oauth.txt',
+
+ # l10n
+ "ignore_locales": ["en-US", "ja-JP-mac"],
+ "l10n_dir": "l10n",
+ "locales_file": "%(branch)s/browser/locales/all-locales",
+ "locales_dir": "browser/locales",
+ "hg_l10n_tag": "default",
+ "merge_locales": True,
+
+ # MAR
+ "previous_mar_dir": "dist\\previous",
+ "current_mar_dir": "dist\\current",
+ "update_mar_dir": "dist\\update", # sure?
+ "previous_mar_filename": "previous.mar",
+ "current_work_mar_dir": "current.work",
+ "package_base_dir": "dist\\l10n-stage",
+ "application_ini": "application.ini",
+ "buildid_section": 'App',
+ "buildid_option": "BuildID",
+ "unpack_script": "tools\\update-packaging\\unwrap_full_update.pl",
+ "incremental_update_script": "tools\\update-packaging\\make_incremental_update.sh",
+ "balrog_release_pusher_script": "scripts\\updates\\balrog-release-pusher.py",
+ "update_packaging_dir": "tools\\update-packaging",
+ "local_mar_tool_dir": "dist\\host\\bin",
+ "mar": "mar.exe",
+ "mbsdiff": "mbsdiff.exe",
+ "current_mar_filename": "firefox-%(version)s.%(locale)s.win64.complete.mar",
+ "complete_mar": "firefox-%(version)s.en-US.win64.complete.mar",
+ "localized_mar": "firefox-%(version)s.%(locale)s.win64.complete.mar",
+ "partial_mar": "firefox-%(version)s.%(locale)s.win64.partial.%(from_buildid)s-%(to_buildid)s.mar",
+ 'installer_file': "firefox-%(version)s.en-US.win64.installer.exe",
+
+ # use mozmake?
+ "enable_mozmake": True,
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ 'c:/mozilla-build/buildbotve/virtualenv.py'
+ ],
+ }
+}
diff --git a/testing/mozharness/configs/talos/linux_config.py b/testing/mozharness/configs/talos/linux_config.py
new file mode 100644
index 000000000..192de17c6
--- /dev/null
+++ b/testing/mozharness/configs/talos/linux_config.py
@@ -0,0 +1,46 @@
+import os
+import platform
+
+PYTHON = '/tools/buildbot/bin/python'
+VENV_PATH = '%s/build/venv' % os.getcwd()
+if platform.architecture()[0] == '64bit':
+ TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest"
+ MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk"
+else:
+ TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest"
+ MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk"
+
+config = {
+ "log_name": "talos",
+ "buildbot_json_path": "buildprops.json",
+ "installer_path": "installer.exe",
+ "virtualenv_path": VENV_PATH,
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+ "exes": {
+ 'python': PYTHON,
+ 'virtualenv': [PYTHON, '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+ "title": os.uname()[1].lower().split('.')[0],
+ "default_actions": [
+ "clobber",
+ "read-buildbot-config",
+ "download-and-extract",
+ "populate-webroot",
+ "create-virtualenv",
+ "install",
+ "run-tests",
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH,
+ "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH,
+ "tooltool_cache": "/builds/tooltool_cache",
+}
diff --git a/testing/mozharness/configs/talos/mac_config.py b/testing/mozharness/configs/talos/mac_config.py
new file mode 100644
index 000000000..56876dbdd
--- /dev/null
+++ b/testing/mozharness/configs/talos/mac_config.py
@@ -0,0 +1,56 @@
+ENABLE_SCREEN_RESOLUTION_CHECK = True
+
+SCREEN_RESOLUTION_CHECK = {
+ "name": "check_screen_resolution",
+ "cmd": ["bash", "-c", "screenresolution get && screenresolution list && system_profiler SPDisplaysDataType"],
+ "architectures": ["32bit", "64bit"],
+ "halt_on_failure": False,
+ "enabled": ENABLE_SCREEN_RESOLUTION_CHECK
+}
+
+import os
+
+PYTHON = '/tools/buildbot/bin/python'
+VENV_PATH = '%s/build/venv' % os.getcwd()
+
+config = {
+ "log_name": "talos",
+ "buildbot_json_path": "buildprops.json",
+ "installer_path": "installer.exe",
+ "virtualenv_path": VENV_PATH,
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+ "exes": {
+ 'python': PYTHON,
+ 'virtualenv': [PYTHON, '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+ "title": os.uname()[1].lower().split('.')[0],
+ "default_actions": [
+ "clobber",
+ "read-buildbot-config",
+ "download-and-extract",
+ "populate-webroot",
+ "create-virtualenv",
+ "install",
+ "run-tests",
+ ],
+ "run_cmd_checks_enabled": True,
+ "preflight_run_cmd_suites": [
+ SCREEN_RESOLUTION_CHECK,
+ ],
+ "postflight_run_cmd_suites": [
+ SCREEN_RESOLUTION_CHECK,
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": "macosx64-minidump_stackwalk",
+ "minidump_tooltool_manifest_path": "config/tooltool-manifests/macosx64/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+}
diff --git a/testing/mozharness/configs/talos/windows_config.py b/testing/mozharness/configs/talos/windows_config.py
new file mode 100644
index 000000000..50c924c44
--- /dev/null
+++ b/testing/mozharness/configs/talos/windows_config.py
@@ -0,0 +1,48 @@
+import os
+import socket
+
+PYTHON = 'c:/mozilla-build/python27/python.exe'
+PYTHON_DLL = 'c:/mozilla-build/python27/python27.dll'
+VENV_PATH = os.path.join(os.getcwd(), 'build/venv')
+
+config = {
+ "log_name": "talos",
+ "buildbot_json_path": "buildprops.json",
+ "installer_path": "installer.exe",
+ "virtualenv_path": VENV_PATH,
+ "virtualenv_python_dll": PYTHON_DLL,
+ "pip_index": False,
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "virtualenv_modules": ['pywin32', 'talos', 'mozinstall'],
+ "exes": {
+ 'python': PYTHON,
+ 'virtualenv': [PYTHON, 'c:/mozilla-build/buildbotve/virtualenv.py'],
+ 'easy_install': ['%s/scripts/python' % VENV_PATH,
+ '%s/scripts/easy_install-2.7-script.py' % VENV_PATH],
+ 'mozinstall': ['%s/scripts/python' % VENV_PATH,
+ '%s/scripts/mozinstall-script.py' % VENV_PATH],
+ 'hg': 'c:/mozilla-build/hg/hg',
+ 'tooltool.py': [PYTHON, 'C:/mozilla-build/tooltool.py'],
+ },
+ "title": socket.gethostname().split('.')[0],
+ "default_actions": [
+ "clobber",
+ "read-buildbot-config",
+ "download-and-extract",
+ "populate-webroot",
+ "create-virtualenv",
+ "install",
+ "run-tests",
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "metro_harness_path_frmt": "%(metro_base_path)s/metro/metrotestharness.exe",
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": "win32-minidump_stackwalk.exe",
+ "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest",
+}
diff --git a/testing/mozharness/configs/taskcluster_nightly.py b/testing/mozharness/configs/taskcluster_nightly.py
new file mode 100644
index 000000000..6c4e4a754
--- /dev/null
+++ b/testing/mozharness/configs/taskcluster_nightly.py
@@ -0,0 +1,5 @@
+config = {
+ 'nightly_build': True,
+ 'taskcluster_nightly': True,
+}
+
diff --git a/testing/mozharness/configs/test/example_config1.json b/testing/mozharness/configs/test/example_config1.json
new file mode 100644
index 000000000..ca73466ba
--- /dev/null
+++ b/testing/mozharness/configs/test/example_config1.json
@@ -0,0 +1,5 @@
+{
+ "beverage": "fizzy drink",
+ "long_sleep_time": 1800,
+ "random_config_key1": "spectacular"
+}
diff --git a/testing/mozharness/configs/test/example_config2.py b/testing/mozharness/configs/test/example_config2.py
new file mode 100644
index 000000000..958543b60
--- /dev/null
+++ b/testing/mozharness/configs/test/example_config2.py
@@ -0,0 +1,5 @@
+config = {
+ "beverage": "cider",
+ "long_sleep_time": 300,
+ "random_config_key2": "wunderbar",
+}
diff --git a/testing/mozharness/configs/test/test.illegal_suffix b/testing/mozharness/configs/test/test.illegal_suffix
new file mode 100644
index 000000000..7d9a4d96d
--- /dev/null
+++ b/testing/mozharness/configs/test/test.illegal_suffix
@@ -0,0 +1,20 @@
+{
+ "log_name": "test",
+ "log_dir": "test_logs",
+ "log_to_console": false,
+ "key1": "value1",
+ "key2": "value2",
+ "section1": {
+
+ "subsection1": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ "subsection2": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+
+ }
+}
diff --git a/testing/mozharness/configs/test/test.json b/testing/mozharness/configs/test/test.json
new file mode 100644
index 000000000..7d9a4d96d
--- /dev/null
+++ b/testing/mozharness/configs/test/test.json
@@ -0,0 +1,20 @@
+{
+ "log_name": "test",
+ "log_dir": "test_logs",
+ "log_to_console": false,
+ "key1": "value1",
+ "key2": "value2",
+ "section1": {
+
+ "subsection1": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ "subsection2": {
+ "key1": "value1",
+ "key2": "value2"
+ }
+
+ }
+}
diff --git a/testing/mozharness/configs/test/test.py b/testing/mozharness/configs/test/test.py
new file mode 100644
index 000000000..84fc357b2
--- /dev/null
+++ b/testing/mozharness/configs/test/test.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+config = {
+ "log_name": "test",
+ "log_dir": "test_logs",
+ "log_to_console": False,
+ "key1": "value1",
+ "key2": "value2",
+ "section1": {
+
+ "subsection1": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ "subsection2": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ },
+ "opt_override": "some stuff",
+}
diff --git a/testing/mozharness/configs/test/test_malformed.json b/testing/mozharness/configs/test/test_malformed.json
new file mode 100644
index 000000000..260be45b8
--- /dev/null
+++ b/testing/mozharness/configs/test/test_malformed.json
@@ -0,0 +1,20 @@
+{
+ "log_name": "test",
+ "log_dir": "test_logs",
+ "log_to_console": false,
+ "key1": "value1",
+ "key2": "value2",
+ "section1": {
+
+ "subsection1": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ "subsection2": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ }
+}
diff --git a/testing/mozharness/configs/test/test_malformed.py b/testing/mozharness/configs/test/test_malformed.py
new file mode 100644
index 000000000..e7ccefd15
--- /dev/null
+++ b/testing/mozharness/configs/test/test_malformed.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+config = {
+ "log_name": "test",
+ "log_dir": "test_logs",
+ "log_to_console": False,
+ "key1": "value1",
+ "key2": "value2",
+ "section1": {
+
+ "subsection1": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+a;sldkfjas;dfkljasdf;kjasdf;ljkadsflkjsdfkweoi
+ "subsection2": {
+ "key1": "value1",
+ "key2": "value2"
+ },
+
+ },
+}
diff --git a/testing/mozharness/configs/test/test_optional.py b/testing/mozharness/configs/test/test_optional.py
new file mode 100644
index 000000000..4eb13b3df
--- /dev/null
+++ b/testing/mozharness/configs/test/test_optional.py
@@ -0,0 +1,4 @@
+#!/usr/bin/env python
+config = {
+ "opt_override": "new stuff",
+}
diff --git a/testing/mozharness/configs/test/test_override.py b/testing/mozharness/configs/test/test_override.py
new file mode 100644
index 000000000..00db5220a
--- /dev/null
+++ b/testing/mozharness/configs/test/test_override.py
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+config = {
+ "override_string": "TODO",
+ "override_list": ['to', 'do'],
+ "override_dict": {'to': 'do'},
+ "keep_string": "don't change me",
+}
diff --git a/testing/mozharness/configs/test/test_override2.py b/testing/mozharness/configs/test/test_override2.py
new file mode 100644
index 000000000..27091d453
--- /dev/null
+++ b/testing/mozharness/configs/test/test_override2.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+config = {
+ "override_string": "yay",
+ "override_list": ["yay", 'worked'],
+ "override_dict": {"yay": 'worked'},
+}
diff --git a/testing/mozharness/configs/unittests/linux_unittest.py b/testing/mozharness/configs/unittests/linux_unittest.py
new file mode 100644
index 000000000..77e4ed501
--- /dev/null
+++ b/testing/mozharness/configs/unittests/linux_unittest.py
@@ -0,0 +1,306 @@
+import os
+import platform
+
+# OS Specifics
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+BINARY_PATH = os.path.join(ABS_WORK_DIR, "application", "firefox", "firefox-bin")
+INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.tar.bz2")
+XPCSHELL_NAME = "xpcshell"
+EXE_SUFFIX = ""
+DISABLE_SCREEN_SAVER = True
+ADJUST_MOUSE_AND_SCREEN = False
+
+# Note: keep these Valgrind .sup file names consistent with those
+# in testing/mochitest/mochitest_options.py.
+VALGRIND_SUPP_DIR = os.path.join(os.getcwd(), "build/tests/mochitest")
+VALGRIND_SUPP_CROSS_ARCH = os.path.join(VALGRIND_SUPP_DIR,
+ "cross-architecture.sup")
+VALGRIND_SUPP_ARCH = None
+
+if platform.architecture()[0] == "64bit":
+ TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/releng.manifest"
+ MINIDUMP_STACKWALK_PATH = "linux64-minidump_stackwalk"
+ VALGRIND_SUPP_ARCH = os.path.join(VALGRIND_SUPP_DIR,
+ "x86_64-redhat-linux-gnu.sup")
+ NODEJS_PATH = "node-linux-x64/bin/node"
+ NODEJS_TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux64/nodejs.manifest"
+else:
+ TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/releng.manifest"
+ MINIDUMP_STACKWALK_PATH = "linux32-minidump_stackwalk"
+ VALGRIND_SUPP_ARCH = os.path.join(VALGRIND_SUPP_DIR,
+ "i386-redhat-linux-gnu.sup")
+ NODEJS_PATH = "node-linux-x86/bin/node"
+ NODEJS_TOOLTOOL_MANIFEST_PATH = "config/tooltool-manifests/linux32/nodejs.manifest"
+
+#####
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "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,
+ ###
+ "installer_path": INSTALLER_PATH,
+ "binary_path": BINARY_PATH,
+ "xpcshell_name": XPCSHELL_NAME,
+ "exe_suffix": EXE_SUFFIX,
+ "run_file_names": {
+ "mochitest": "runtests.py",
+ "reftest": "runreftest.py",
+ "xpcshell": "runxpcshelltests.py",
+ "cppunittest": "runcppunittests.py",
+ "gtest": "rungtests.py",
+ "jittest": "jit_test.py",
+ "mozbase": "test.py",
+ "mozmill": "runtestlist.py",
+ },
+ "minimum_tests_zip_dirs": [
+ "bin/*",
+ "certs/*",
+ "config/*",
+ "mach",
+ "marionette/*",
+ "modules/*",
+ "mozbase/*",
+ "tools/*",
+ ],
+ "specific_tests_zip_dirs": {
+ "mochitest": ["mochitest/*"],
+ "reftest": ["reftest/*", "jsreftest/*"],
+ "xpcshell": ["xpcshell/*"],
+ "cppunittest": ["cppunittest/*"],
+ "gtest": ["gtest/*"],
+ "jittest": ["jit-test/*"],
+ "mozbase": ["mozbase/*"],
+ "mozmill": ["mozmill/*"],
+ },
+ "suite_definitions": {
+ "cppunittest": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--xre-path=%(abs_app_dir)s"
+ ],
+ "run_filename": "runcppunittests.py",
+ "testsdir": "cppunittest"
+ },
+ "jittest": {
+ "options": [
+ "tests/bin/js",
+ "--no-slow",
+ "--no-progress",
+ "--format=automation",
+ "--jitflags=all",
+ "--timeout=970" # Keep in sync with run_timeout below.
+ ],
+ "run_filename": "jit_test.py",
+ "testsdir": "jit-test/jit-test",
+ "run_timeout": 1000 # Keep in sync with --timeout above.
+ },
+ "mochitest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--certificate-path=tests/certs",
+ "--setpref=webgl.force-enabled=true",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--use-test-media-devices",
+ "--screenshot-on-fail",
+ "--cleanup-crashes",
+ "--marionette-startup-timeout=180",
+ ],
+ "run_filename": "runtests.py",
+ "testsdir": "mochitest"
+ },
+ "mozbase": {
+ "options": [
+ "-b",
+ "%(binary_path)s"
+ ],
+ "run_filename": "test.py",
+ "testsdir": "mozbase"
+ },
+ "mozmill": {
+ "options": [
+ "--binary=%(binary_path)s",
+ "--testing-modules-dir=test/modules",
+ "--plugins-path=%(test_plugin_path)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "runtestlist.py",
+ "testsdir": "mozmill"
+ },
+ "reftest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runreftest.py",
+ "testsdir": "reftest"
+ },
+ "xpcshell": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--test-plugin-path=%(test_plugin_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--utility-path=tests/bin",
+ ],
+ "run_filename": "runxpcshelltests.py",
+ "testsdir": "xpcshell"
+ },
+ "gtest": {
+ "options": [
+ "--xre-path=%(abs_res_dir)s",
+ "--cwd=%(gtest_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--utility-path=tests/bin",
+ "%(binary_path)s",
+ ],
+ "run_filename": "rungtests.py",
+ },
+ },
+ # local mochi suites
+ "all_mochitest_suites": {
+ "valgrind-plain": ["--valgrind=/usr/bin/valgrind",
+ "--valgrind-supp-files=" + VALGRIND_SUPP_ARCH +
+ "," + VALGRIND_SUPP_CROSS_ARCH,
+ "--timeout=900", "--max-timeouts=50"],
+ "plain": [],
+ "plain-gpu": ["--subsuite=gpu"],
+ "plain-clipboard": ["--subsuite=clipboard"],
+ "plain-chunked": ["--chunk-by-dir=4"],
+ "mochitest-media": ["--subsuite=media"],
+ "chrome": ["--flavor=chrome"],
+ "chrome-gpu": ["--flavor=chrome", "--subsuite=gpu"],
+ "chrome-clipboard": ["--flavor=chrome", "--subsuite=clipboard"],
+ "chrome-chunked": ["--flavor=chrome", "--chunk-by-dir=4"],
+ "browser-chrome": ["--flavor=browser"],
+ "browser-chrome-gpu": ["--flavor=browser", "--subsuite=gpu"],
+ "browser-chrome-clipboard": ["--flavor=browser", "--subsuite=clipboard"],
+ "browser-chrome-chunked": ["--flavor=browser", "--chunk-by-runtime"],
+ "browser-chrome-addons": ["--flavor=browser", "--chunk-by-runtime", "--tag=addons"],
+ "browser-chrome-coverage": ["--flavor=browser", "--chunk-by-runtime", "--timeout=1200"],
+ "browser-chrome-screenshots": ["--flavor=browser", "--subsuite=screenshots"],
+ "mochitest-gl": ["--subsuite=webgl"],
+ "mochitest-devtools-chrome": ["--flavor=browser", "--subsuite=devtools"],
+ "mochitest-devtools-chrome-chunked": ["--flavor=browser", "--subsuite=devtools", "--chunk-by-runtime"],
+ "mochitest-devtools-chrome-coverage": ["--flavor=browser", "--subsuite=devtools", "--chunk-by-runtime", "--timeout=1200"],
+ "jetpack-package": ["--flavor=jetpack-package"],
+ "jetpack-package-clipboard": ["--flavor=jetpack-package", "--subsuite=clipboard"],
+ "jetpack-addon": ["--flavor=jetpack-addon"],
+ "a11y": ["--flavor=a11y"],
+ },
+ # local reftest suites
+ "all_reftest_suites": {
+ "crashtest": {
+ "options": ["--suite=crashtest"],
+ "tests": ["tests/reftest/tests/testing/crashtest/crashtests.list"]
+ },
+ "jsreftest": {
+ "options": ["--extra-profile-file=tests/jsreftest/tests/user.js",
+ "--suite=jstestbrowser"],
+ "tests": ["tests/jsreftest/tests/jstests.list"]
+ },
+ "reftest": {
+ "options": ["--suite=reftest"],
+ "tests": ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ "reftest-no-accel": {
+ "options": ["--suite=reftest",
+ "--setpref=layers.acceleration.force-enabled=disabled"],
+ "tests": ["tests/reftest/tests/layout/reftests/reftest.list"]},
+ },
+ "all_xpcshell_suites": {
+ "xpcshell": {
+ "options": ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ "tests": []
+ },
+ "xpcshell-addons": {
+ "options": ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--tag=addons",
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ "tests": []
+ },
+ "xpcshell-coverage": {
+ "options": ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ "tests": []
+ },
+ },
+ "all_cppunittest_suites": {
+ "cppunittest": {"tests": ["tests/cppunittest"]}
+ },
+ "all_gtest_suites": {
+ "gtest": []
+ },
+ "all_jittest_suites": {
+ "jittest": [],
+ "jittest1": ["--total-chunks=2", "--this-chunk=1"],
+ "jittest2": ["--total-chunks=2", "--this-chunk=2"],
+ "jittest-chunked": [],
+ },
+ "all_mozbase_suites": {
+ "mozbase": []
+ },
+ "run_cmd_checks_enabled": True,
+ "preflight_run_cmd_suites": [
+ # NOTE 'enabled' is only here while we have unconsolidated configs
+ {
+ "name": "disable_screen_saver",
+ "cmd": ["xset", "s", "off", "s", "reset"],
+ "halt_on_failure": False,
+ "architectures": ["32bit", "64bit"],
+ "enabled": DISABLE_SCREEN_SAVER
+ },
+ {
+ "name": "run mouse & screen adjustment script",
+ "cmd": [
+ # when configs are consolidated this python path will only show
+ # for windows.
+ "python", "../scripts/external_tools/mouse_and_screen_resolution.py",
+ "--configuration-file",
+ "../scripts/external_tools/machine-configuration.json"],
+ "architectures": ["32bit"],
+ "halt_on_failure": True,
+ "enabled": ADJUST_MOUSE_AND_SCREEN
+ },
+ ],
+ "vcs_output_timeout": 1000,
+ "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+ "buildbot_max_log_size": 52428800,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "unstructured_flavors": {"mochitest": ['jetpack'],
+ "xpcshell": [],
+ "gtest": [],
+ "mozmill": [],
+ "cppunittest": [],
+ "jittest": [],
+ "mozbase": [],
+ },
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH,
+ "minidump_tooltool_manifest_path": TOOLTOOL_MANIFEST_PATH,
+ "tooltool_cache": "/builds/tooltool_cache",
+ "download_nodejs": True,
+ "nodejs_path": NODEJS_PATH,
+ "nodejs_tooltool_manifest_path": NODEJS_TOOLTOOL_MANIFEST_PATH,
+}
diff --git a/testing/mozharness/configs/unittests/mac_unittest.py b/testing/mozharness/configs/unittests/mac_unittest.py
new file mode 100644
index 000000000..20bbcf9f5
--- /dev/null
+++ b/testing/mozharness/configs/unittests/mac_unittest.py
@@ -0,0 +1,257 @@
+import os
+
+# OS Specifics
+INSTALLER_PATH = os.path.join(os.getcwd(), "installer.dmg")
+XPCSHELL_NAME = 'xpcshell'
+EXE_SUFFIX = ''
+DISABLE_SCREEN_SAVER = False
+ADJUST_MOUSE_AND_SCREEN = False
+#####
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "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,
+ ###
+ "installer_path": INSTALLER_PATH,
+ "xpcshell_name": XPCSHELL_NAME,
+ "exe_suffix": EXE_SUFFIX,
+ "run_file_names": {
+ "mochitest": "runtests.py",
+ "reftest": "runreftest.py",
+ "xpcshell": "runxpcshelltests.py",
+ "cppunittest": "runcppunittests.py",
+ "gtest": "rungtests.py",
+ "jittest": "jit_test.py",
+ "mozbase": "test.py",
+ "mozmill": "runtestlist.py",
+ },
+ "minimum_tests_zip_dirs": [
+ "bin/*",
+ "certs/*",
+ "config/*",
+ "mach",
+ "marionette/*",
+ "modules/*",
+ "mozbase/*",
+ "tools/*",
+ ],
+ "specific_tests_zip_dirs": {
+ "mochitest": ["mochitest/*"],
+ "reftest": ["reftest/*", "jsreftest/*"],
+ "xpcshell": ["xpcshell/*"],
+ "cppunittest": ["cppunittest/*"],
+ "gtest": ["gtest/*"],
+ "jittest": ["jit-test/*"],
+ "mozbase": ["mozbase/*"],
+ "mozmill": ["mozmill/*"],
+ },
+ "suite_definitions": {
+ "cppunittest": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--xre-path=%(abs_res_dir)s"
+ ],
+ "run_filename": "runcppunittests.py",
+ "testsdir": "cppunittest"
+ },
+ "jittest": {
+ "options": [
+ "tests/bin/js",
+ "--no-slow",
+ "--no-progress",
+ "--format=automation",
+ "--jitflags=all",
+ "--timeout=970" # Keep in sync with run_timeout below.
+ ],
+ "run_filename": "jit_test.py",
+ "testsdir": "jit-test/jit-test",
+ "run_timeout": 1000 # Keep in sync with --timeout above.
+ },
+ "mochitest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--certificate-path=tests/certs",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runtests.py",
+ "testsdir": "mochitest"
+ },
+ "mozbase": {
+ "options": [
+ "-b",
+ "%(binary_path)s"
+ ],
+ "run_filename": "test.py",
+ "testsdir": "mozbase"
+ },
+ "mozmill": {
+ "options": [
+ "--binary=%(binary_path)s",
+ "--testing-modules-dir=test/modules",
+ "--plugins-path=%(test_plugin_path)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "runtestlist.py",
+ "testsdir": "mozmill"
+ },
+ "reftest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runreftest.py",
+ "testsdir": "reftest"
+ },
+ "xpcshell": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--test-plugin-path=%(test_plugin_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--utility-path=tests/bin",
+ ],
+ "run_filename": "runxpcshelltests.py",
+ "testsdir": "xpcshell"
+ },
+ "gtest": {
+ "options": [
+ "--xre-path=%(abs_res_dir)s",
+ "--cwd=%(gtest_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--utility-path=tests/bin",
+ "%(binary_path)s",
+ ],
+ "run_filename": "rungtests.py",
+ },
+ },
+ # local mochi suites
+ "all_mochitest_suites": {
+ "plain": [],
+ "plain-gpu": ["--subsuite=gpu"],
+ "plain-clipboard": ["--subsuite=clipboard"],
+ "plain-chunked": ["--chunk-by-dir=4"],
+ "mochitest-media": ["--subsuite=media"],
+ "chrome": ["--flavor=chrome"],
+ "chrome-gpu": ["--flavor=chrome", "--subsuite=gpu"],
+ "chrome-clipboard": ["--flavor=chrome", "--subsuite=clipboard"],
+ "chrome-chunked": ["--flavor=chrome", "--chunk-by-dir=4"],
+ "browser-chrome": ["--flavor=browser"],
+ "browser-chrome-gpu": ["--flavor=browser", "--subsuite=gpu"],
+ "browser-chrome-clipboard": ["--flavor=browser", "--subsuite=clipboard"],
+ "browser-chrome-chunked": ["--flavor=browser", "--chunk-by-runtime"],
+ "browser-chrome-addons": ["--flavor=browser", "--chunk-by-runtime", "--tag=addons"],
+ "browser-chrome-screenshots": ["--flavor=browser", "--subsuite=screenshots"],
+ "mochitest-gl": ["--subsuite=webgl"],
+ "mochitest-devtools-chrome": ["--flavor=browser", "--subsuite=devtools"],
+ "mochitest-devtools-chrome-chunked": ["--flavor=browser", "--subsuite=devtools", "--chunk-by-runtime"],
+ "jetpack-package": ["--flavor=jetpack-package"],
+ "jetpack-package-clipboard": ["--flavor=jetpack-package", "--subsuite=clipboard"],
+ "jetpack-addon": ["--flavor=jetpack-addon"],
+ "a11y": ["--flavor=a11y"],
+ },
+ # local reftest suites
+ "all_reftest_suites": {
+ "crashtest": {
+ 'options': ["--suite=crashtest"],
+ 'tests': ["tests/reftest/tests/testing/crashtest/crashtests.list"]
+ },
+ "jsreftest": {
+ 'options':["--extra-profile-file=tests/jsreftest/tests/user.js"],
+ 'tests': ["tests/jsreftest/tests/jstests.list"]
+ },
+ "reftest": {
+ 'options': ["--suite=reftest"],
+ 'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ },
+ "all_xpcshell_suites": {
+ "xpcshell": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ "xpcshell-addons": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--tag=addons",
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ },
+ "all_cppunittest_suites": {
+ "cppunittest": ['tests/cppunittest']
+ },
+ "all_gtest_suites": {
+ "gtest": []
+ },
+ "all_jittest_suites": {
+ "jittest": []
+ },
+ "all_mozbase_suites": {
+ "mozbase": []
+ },
+ "run_cmd_checks_enabled": True,
+ "preflight_run_cmd_suites": [
+ # NOTE 'enabled' is only here while we have unconsolidated configs
+ {
+ "name": "disable_screen_saver",
+ "cmd": ["xset", "s", "off", "s", "reset"],
+ "architectures": ["32bit", "64bit"],
+ "halt_on_failure": False,
+ "enabled": DISABLE_SCREEN_SAVER
+ },
+ {
+ "name": "run mouse & screen adjustment script",
+ "cmd": [
+ # when configs are consolidated this python path will only show
+ # for windows.
+ "python", "../scripts/external_tools/mouse_and_screen_resolution.py",
+ "--configuration-file",
+ "../scripts/external_tools/machine-configuration.json"],
+ "architectures": ["32bit"],
+ "halt_on_failure": True,
+ "enabled": ADJUST_MOUSE_AND_SCREEN
+ },
+ ],
+ "vcs_output_timeout": 1000,
+ "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+ "buildbot_max_log_size": 52428800,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "unstructured_flavors": {"mochitest": ['jetpack'],
+ "xpcshell": [],
+ "gtest": [],
+ "mozmill": [],
+ "cppunittest": [],
+ "jittest": [],
+ "mozbase": [],
+ },
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": "macosx64-minidump_stackwalk",
+ "minidump_tooltool_manifest_path": "config/tooltool-manifests/macosx64/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ "download_nodejs": True,
+ "nodejs_path": "node-osx/bin/node",
+ "nodejs_tooltool_manifest_path": "config/tooltool-manifests/macosx64/nodejs.manifest",
+}
diff --git a/testing/mozharness/configs/unittests/thunderbird_extra.py b/testing/mozharness/configs/unittests/thunderbird_extra.py
new file mode 100644
index 000000000..2021b9d55
--- /dev/null
+++ b/testing/mozharness/configs/unittests/thunderbird_extra.py
@@ -0,0 +1,17 @@
+#####
+config = {
+ "application": "thunderbird",
+ "minimum_tests_zip_dirs": [
+ "bin/*",
+ "certs/*",
+ "config/*",
+ "extensions/*",
+ "marionette/*",
+ "modules/*",
+ "mozbase/*",
+ "tools/*",
+ ],
+ "all_mozmill_suites": {
+ "mozmill": ["--list=tests/mozmill/mozmilltests.list"],
+ },
+}
diff --git a/testing/mozharness/configs/unittests/win_taskcluster_unittest.py b/testing/mozharness/configs/unittests/win_taskcluster_unittest.py
new file mode 100644
index 000000000..161e8e65e
--- /dev/null
+++ b/testing/mozharness/configs/unittests/win_taskcluster_unittest.py
@@ -0,0 +1,274 @@
+import os
+import sys
+
+# OS Specifics
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+BINARY_PATH = os.path.join(ABS_WORK_DIR, "firefox", "firefox.exe")
+INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.zip")
+XPCSHELL_NAME = 'xpcshell.exe'
+EXE_SUFFIX = '.exe'
+DISABLE_SCREEN_SAVER = False
+ADJUST_MOUSE_AND_SCREEN = True
+#####
+config = {
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(os.path.dirname(sys.executable), 'Lib', 'site-packages', 'virtualenv.py')
+ ],
+ 'mozinstall': ['build/venv/scripts/python', 'build/venv/scripts/mozinstall-script.py'],
+ 'tooltool.py': [sys.executable, os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')],
+ 'hg': os.path.join(os.environ['PROGRAMFILES'], 'Mercurial', 'hg')
+ },
+ ###
+ "installer_path": INSTALLER_PATH,
+ "binary_path": BINARY_PATH,
+ "xpcshell_name": XPCSHELL_NAME,
+ "virtualenv_path": 'venv',
+ "virtualenv_python_dll": os.path.join(os.path.dirname(sys.executable), "python27.dll"),
+
+ "proxxy": {},
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+ "exe_suffix": EXE_SUFFIX,
+ "run_file_names": {
+ "mochitest": "runtests.py",
+ "reftest": "runreftest.py",
+ "xpcshell": "runxpcshelltests.py",
+ "cppunittest": "runcppunittests.py",
+ "gtest": "rungtests.py",
+ "jittest": "jit_test.py",
+ "mozbase": "test.py",
+ "mozmill": "runtestlist.py",
+ },
+ "minimum_tests_zip_dirs": [
+ "bin/*",
+ "certs/*",
+ "config/*",
+ "mach",
+ "marionette/*",
+ "modules/*",
+ "mozbase/*",
+ "tools/*",
+ ],
+ "specific_tests_zip_dirs": {
+ "mochitest": ["mochitest/*"],
+ "reftest": ["reftest/*", "jsreftest/*"],
+ "xpcshell": ["xpcshell/*"],
+ "cppunittest": ["cppunittest/*"],
+ "gtest": ["gtest/*"],
+ "jittest": ["jit-test/*"],
+ "mozbase": ["mozbase/*"],
+ "mozmill": ["mozmill/*"],
+ },
+ "suite_definitions": {
+ "cppunittest": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--xre-path=%(abs_app_dir)s"
+ ],
+ "run_filename": "runcppunittests.py",
+ "testsdir": "cppunittest"
+ },
+ "jittest": {
+ "options": [
+ "tests/bin/js",
+ "--no-slow",
+ "--no-progress",
+ "--format=automation",
+ "--jitflags=all",
+ "--timeout=970" # Keep in sync with run_timeout below.
+ ],
+ "run_filename": "jit_test.py",
+ "testsdir": "jit-test/jit-test",
+ "run_timeout": 1000 # Keep in sync with --timeout above.
+ },
+ "mochitest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--certificate-path=tests/certs",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runtests.py",
+ "testsdir": "mochitest"
+ },
+ "mozbase": {
+ "options": [
+ "-b",
+ "%(binary_path)s"
+ ],
+ "run_filename": "test.py",
+ "testsdir": "mozbase"
+ },
+ "mozmill": {
+ "options": [
+ "--binary=%(binary_path)s",
+ "--testing-modules-dir=test/modules",
+ "--plugins-path=%(test_plugin_path)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "runtestlist.py",
+ "testsdir": "mozmill"
+ },
+ "reftest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runreftest.py",
+ "testsdir": "reftest"
+ },
+ "xpcshell": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--test-plugin-path=%(test_plugin_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--utility-path=tests/bin",
+ ],
+ "run_filename": "runxpcshelltests.py",
+ "testsdir": "xpcshell"
+ },
+ "gtest": {
+ "options": [
+ "--xre-path=%(abs_res_dir)s",
+ "--cwd=%(gtest_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--utility-path=tests/bin",
+ "%(binary_path)s",
+ ],
+ "run_filename": "rungtests.py",
+ },
+ },
+ # local mochi suites
+ "all_mochitest_suites":
+ {
+ "plain": [],
+ "plain-gpu": ["--subsuite=gpu"],
+ "plain-clipboard": ["--subsuite=clipboard"],
+ "plain-chunked": ["--chunk-by-dir=4"],
+ "mochitest-media": ["--subsuite=media"],
+ "chrome": ["--flavor=chrome"],
+ "chrome-gpu": ["--flavor=chrome", "--subsuite=gpu"],
+ "chrome-clipboard": ["--flavor=chrome", "--subsuite=clipboard"],
+ "chrome-chunked": ["--flavor=chrome", "--chunk-by-dir=4"],
+ "browser-chrome": ["--flavor=browser"],
+ "browser-chrome-gpu": ["--flavor=browser", "--subsuite=gpu"],
+ "browser-chrome-clipboard": ["--flavor=browser", "--subsuite=clipboard"],
+ "browser-chrome-chunked": ["--flavor=browser", "--chunk-by-runtime"],
+ "browser-chrome-addons": ["--flavor=browser", "--chunk-by-runtime", "--tag=addons"],
+ "browser-chrome-screenshots": ["--flavor=browser", "--subsuite=screenshots"],
+ "mochitest-gl": ["--subsuite=webgl"],
+ "mochitest-devtools-chrome": ["--flavor=browser", "--subsuite=devtools"],
+ "mochitest-devtools-chrome-chunked": ["--flavor=browser", "--subsuite=devtools", "--chunk-by-runtime"],
+ "mochitest-metro-chrome": ["--flavor=browser", "--metro-immersive"],
+ "jetpack-package": ["--flavor=jetpack-package"],
+ "jetpack-package-clipboard": ["--flavor=jetpack-package", "--subsuite=clipboard"],
+ "jetpack-addon": ["--flavor=jetpack-addon"],
+ "a11y": ["--flavor=a11y"],
+ },
+ # local reftest suites
+ "all_reftest_suites": {
+ "crashtest": {
+ 'options': ["--suite=crashtest"],
+ 'tests': ["tests/reftest/tests/testing/crashtest/crashtests.list"]
+ },
+ "jsreftest": {
+ 'options':["--extra-profile-file=tests/jsreftest/tests/user.js"],
+ 'tests': ["tests/jsreftest/tests/jstests.list"]
+ },
+ "reftest": {
+ 'options': ["--suite=reftest"],
+ 'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ "reftest-gpu": {
+ 'options': ["--suite=reftest",
+ "--setpref=layers.gpu-process.force-enabled=true"],
+ 'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ "reftest-no-accel": {
+ "options": ["--suite=reftest",
+ "--setpref=gfx.direct2d.disabled=true",
+ "--setpref=layers.acceleration.disabled=true"],
+ "tests": ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ },
+ "all_xpcshell_suites": {
+ "xpcshell": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ "xpcshell-addons": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--tag=addons",
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ },
+ "all_cppunittest_suites": {
+ "cppunittest": ['tests/cppunittest']
+ },
+ "all_gtest_suites": {
+ "gtest": []
+ },
+ "all_jittest_suites": {
+ "jittest": []
+ },
+ "all_mozbase_suites": {
+ "mozbase": []
+ },
+ "run_cmd_checks_enabled": True,
+ "preflight_run_cmd_suites": [
+ {
+ 'name': 'disable_screen_saver',
+ 'cmd': ['xset', 's', 'off', 's', 'reset'],
+ 'architectures': ['32bit', '64bit'],
+ 'halt_on_failure': False,
+ 'enabled': DISABLE_SCREEN_SAVER
+ },
+ {
+ 'name': 'run mouse & screen adjustment script',
+ 'cmd': [
+ sys.executable,
+ os.path.join(os.getcwd(),
+ 'mozharness', 'external_tools', 'mouse_and_screen_resolution.py'),
+ '--configuration-file',
+ os.path.join(os.getcwd(),
+ 'mozharness', 'external_tools', 'machine-configuration.json')
+ ],
+ 'architectures': ['32bit'],
+ 'halt_on_failure': True,
+ 'enabled': ADJUST_MOUSE_AND_SCREEN
+ }
+ ],
+ "vcs_output_timeout": 1000,
+ "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+ "buildbot_max_log_size": 52428800,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "structured_suites": ["reftest"],
+ 'blob_uploader_auth_file': 'C:/builds/oauth.txt',
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": "win32-minidump_stackwalk.exe",
+ "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest",
+ "download_nodejs": True,
+ "nodejs_path": "node-win32.exe",
+ "nodejs_tooltool_manifest_path": "config/tooltool-manifests/win32/nodejs.manifest",
+}
diff --git a/testing/mozharness/configs/unittests/win_unittest.py b/testing/mozharness/configs/unittests/win_unittest.py
new file mode 100644
index 000000000..caa2978c6
--- /dev/null
+++ b/testing/mozharness/configs/unittests/win_unittest.py
@@ -0,0 +1,281 @@
+import os
+import sys
+
+# OS Specifics
+ABS_WORK_DIR = os.path.join(os.getcwd(), "build")
+BINARY_PATH = os.path.join(ABS_WORK_DIR, "application", "firefox", "firefox.exe")
+INSTALLER_PATH = os.path.join(ABS_WORK_DIR, "installer.zip")
+XPCSHELL_NAME = 'xpcshell.exe'
+EXE_SUFFIX = '.exe'
+DISABLE_SCREEN_SAVER = False
+ADJUST_MOUSE_AND_SCREEN = True
+#####
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [sys.executable, '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'],
+ },
+ ###
+ "installer_path": INSTALLER_PATH,
+ "binary_path": BINARY_PATH,
+ "xpcshell_name": XPCSHELL_NAME,
+ "virtualenv_path": 'venv',
+ "virtualenv_python_dll": os.path.join(os.path.dirname(sys.executable), "python27.dll"),
+ "virtualenv_modules": ['pypiwin32'],
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+ "exe_suffix": EXE_SUFFIX,
+ "run_file_names": {
+ "mochitest": "runtests.py",
+ "reftest": "runreftest.py",
+ "xpcshell": "runxpcshelltests.py",
+ "cppunittest": "runcppunittests.py",
+ "gtest": "rungtests.py",
+ "jittest": "jit_test.py",
+ "mozbase": "test.py",
+ "mozmill": "runtestlist.py",
+ },
+ "minimum_tests_zip_dirs": [
+ "bin/*",
+ "certs/*",
+ "config/*",
+ "mach",
+ "marionette/*",
+ "modules/*",
+ "mozbase/*",
+ "tools/*",
+ ],
+ "specific_tests_zip_dirs": {
+ "mochitest": ["mochitest/*"],
+ "reftest": ["reftest/*", "jsreftest/*"],
+ "xpcshell": ["xpcshell/*"],
+ "cppunittest": ["cppunittest/*"],
+ "gtest": ["gtest/*"],
+ "jittest": ["jit-test/*"],
+ "mozbase": ["mozbase/*"],
+ "mozmill": ["mozmill/*"],
+ },
+ "suite_definitions": {
+ "cppunittest": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--xre-path=%(abs_app_dir)s"
+ ],
+ "run_filename": "runcppunittests.py",
+ "testsdir": "cppunittest"
+ },
+ "jittest": {
+ "options": [
+ "tests/bin/js",
+ "--no-slow",
+ "--no-progress",
+ "--format=automation",
+ "--jitflags=all",
+ "--timeout=970" # Keep in sync with run_timeout below.
+ ],
+ "run_filename": "jit_test.py",
+ "testsdir": "jit-test/jit-test",
+ "run_timeout": 1000 # Keep in sync with --timeout above.
+ },
+ "mochitest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--certificate-path=tests/certs",
+ "--quiet",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--screenshot-on-fail",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runtests.py",
+ "testsdir": "mochitest"
+ },
+ "mozbase": {
+ "options": [
+ "-b",
+ "%(binary_path)s"
+ ],
+ "run_filename": "test.py",
+ "testsdir": "mozbase"
+ },
+ "mozmill": {
+ "options": [
+ "--binary=%(binary_path)s",
+ "--testing-modules-dir=test/modules",
+ "--plugins-path=%(test_plugin_path)s",
+ "--symbols-path=%(symbols_path)s"
+ ],
+ "run_filename": "runtestlist.py",
+ "testsdir": "mozmill"
+ },
+ "reftest": {
+ "options": [
+ "--appname=%(binary_path)s",
+ "--utility-path=tests/bin",
+ "--extra-profile-file=tests/bin/plugins",
+ "--symbols-path=%(symbols_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--cleanup-crashes",
+ ],
+ "run_filename": "runreftest.py",
+ "testsdir": "reftest"
+ },
+ "xpcshell": {
+ "options": [
+ "--symbols-path=%(symbols_path)s",
+ "--test-plugin-path=%(test_plugin_path)s",
+ "--log-raw=%(raw_log_file)s",
+ "--log-errorsummary=%(error_summary_file)s",
+ "--utility-path=tests/bin",
+ ],
+ "run_filename": "runxpcshelltests.py",
+ "testsdir": "xpcshell"
+ },
+ "gtest": {
+ "options": [
+ "--xre-path=%(abs_res_dir)s",
+ "--cwd=%(gtest_dir)s",
+ "--symbols-path=%(symbols_path)s",
+ "--utility-path=tests/bin",
+ "%(binary_path)s",
+ ],
+ "run_filename": "rungtests.py",
+ },
+ },
+ # local mochi suites
+ "all_mochitest_suites":
+ {
+ "plain": [],
+ "plain-gpu": ["--subsuite=gpu"],
+ "plain-clipboard": ["--subsuite=clipboard"],
+ "plain-chunked": ["--chunk-by-dir=4"],
+ "mochitest-media": ["--subsuite=media"],
+ "chrome": ["--flavor=chrome"],
+ "chrome-gpu": ["--flavor=chrome", "--subsuite=gpu"],
+ "chrome-clipboard": ["--flavor=chrome", "--subsuite=clipboard"],
+ "chrome-chunked": ["--flavor=chrome", "--chunk-by-dir=4"],
+ "browser-chrome": ["--flavor=browser"],
+ "browser-chrome-gpu": ["--flavor=browser", "--subsuite=gpu"],
+ "browser-chrome-clipboard": ["--flavor=browser", "--subsuite=clipboard"],
+ "browser-chrome-chunked": ["--flavor=browser", "--chunk-by-runtime"],
+ "browser-chrome-addons": ["--flavor=browser", "--chunk-by-runtime", "--tag=addons"],
+ "browser-chrome-screenshots": ["--flavor=browser", "--subsuite=screenshots"],
+ "mochitest-gl": ["--subsuite=webgl"],
+ "mochitest-devtools-chrome": ["--flavor=browser", "--subsuite=devtools"],
+ "mochitest-devtools-chrome-chunked": ["--flavor=browser", "--subsuite=devtools", "--chunk-by-runtime"],
+ "mochitest-metro-chrome": ["--flavor=browser", "--metro-immersive"],
+ "jetpack-package": ["--flavor=jetpack-package"],
+ "jetpack-package-clipboard": ["--flavor=jetpack-package", "--subsuite=clipboard"],
+ "jetpack-addon": ["--flavor=jetpack-addon"],
+ "a11y": ["--flavor=a11y"],
+ },
+ # local reftest suites
+ "all_reftest_suites": {
+ "crashtest": {
+ 'options': ["--suite=crashtest"],
+ 'tests': ["tests/reftest/tests/testing/crashtest/crashtests.list"]
+ },
+ "jsreftest": {
+ 'options':["--extra-profile-file=tests/jsreftest/tests/user.js"],
+ 'tests': ["tests/jsreftest/tests/jstests.list"]
+ },
+ "reftest": {
+ 'options': ["--suite=reftest"],
+ 'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ "reftest-gpu": {
+ 'options': ["--suite=reftest",
+ "--setpref=layers.gpu-process.force-enabled=true"],
+ 'tests': ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ "reftest-no-accel": {
+ "options": ["--suite=reftest",
+ "--setpref=gfx.direct2d.disabled=true",
+ "--setpref=layers.acceleration.disabled=true"],
+ "tests": ["tests/reftest/tests/layout/reftests/reftest.list"]
+ },
+ },
+ "all_xpcshell_suites": {
+ "xpcshell": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ "xpcshell-addons": {
+ 'options': ["--xpcshell=%(abs_app_dir)s/" + XPCSHELL_NAME,
+ "--tag=addons",
+ "--manifest=tests/xpcshell/tests/xpcshell.ini"],
+ 'tests': []
+ },
+ },
+ "all_cppunittest_suites": {
+ "cppunittest": ['tests/cppunittest']
+ },
+ "all_gtest_suites": {
+ "gtest": []
+ },
+ "all_jittest_suites": {
+ "jittest": []
+ },
+ "all_mozbase_suites": {
+ "mozbase": []
+ },
+ "run_cmd_checks_enabled": True,
+ "preflight_run_cmd_suites": [
+ # NOTE 'enabled' is only here while we have unconsolidated configs
+ {
+ "name": "disable_screen_saver",
+ "cmd": ["xset", "s", "off", "s", "reset"],
+ "architectures": ["32bit", "64bit"],
+ "halt_on_failure": False,
+ "enabled": DISABLE_SCREEN_SAVER
+ },
+ {
+ "name": "run mouse & screen adjustment script",
+ "cmd": [
+ # when configs are consolidated this python path will only show
+ # for windows.
+ sys.executable,
+ "../scripts/external_tools/mouse_and_screen_resolution.py",
+ "--configuration-file",
+ "../scripts/external_tools/machine-configuration.json"],
+ "architectures": ["32bit"],
+ "halt_on_failure": True,
+ "enabled": ADJUST_MOUSE_AND_SCREEN
+ },
+ ],
+ "vcs_output_timeout": 1000,
+ "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+ "buildbot_max_log_size": 52428800,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "unstructured_flavors": {"mochitest": ['jetpack'],
+ "xpcshell": [],
+ "gtest": [],
+ "mozmill": [],
+ "cppunittest": [],
+ "jittest": [],
+ "mozbase": [],
+ },
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "download_minidump_stackwalk": True,
+ "minidump_stackwalk_path": "win32-minidump_stackwalk.exe",
+ "minidump_tooltool_manifest_path": "config/tooltool-manifests/win32/releng.manifest",
+ "download_nodejs": True,
+ "nodejs_path": "node-win32.exe",
+ "nodejs_tooltool_manifest_path": "config/tooltool-manifests/win32/nodejs.manifest",
+}
diff --git a/testing/mozharness/configs/users/aki/gaia_json.py b/testing/mozharness/configs/users/aki/gaia_json.py
new file mode 100644
index 000000000..4263cc908
--- /dev/null
+++ b/testing/mozharness/configs/users/aki/gaia_json.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+config = {
+ "log_name": "gaia_bump",
+ "log_max_rotate": 99,
+ "ssh_key": "~/.ssh/id_rsa",
+ "ssh_user": "asasaki@mozilla.com",
+ "hg_user": "Test Pusher <aki@escapewindow.com>",
+ "revision_file": "b2g/config/gaia.json",
+ "exes": {
+ # Get around the https warnings
+ "hg": ['hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ },
+ "repo_list": [{
+ "polling_url": "https://hg.mozilla.org/integration/gaia-central/json-pushes?full=1",
+ "branch": "default",
+ "repo_url": "https://hg.mozilla.org/integration/gaia-central",
+ "repo_name": "gaia-central",
+ "target_push_url": "ssh://hg.mozilla.org/users/asasaki_mozilla.com/birch",
+ "target_pull_url": "https://hg.mozilla.org/users/asasaki_mozilla.com/birch",
+ "target_tag": "default",
+ "target_repo_name": "birch",
+ }, {
+ "polling_url": "https://hg.mozilla.org/integration/gaia-1_2/json-pushes?full=1",
+ "branch": "default",
+ "repo_url": "https://hg.mozilla.org/integration/gaia-1_2",
+ "repo_name": "gaia-1_2",
+ "target_push_url": "ssh://hg.mozilla.org/users/asasaki_mozilla.com/mozilla-aurora",
+ "target_pull_url": "https://hg.mozilla.org/users/asasaki_mozilla.com/mozilla-aurora",
+ "target_tag": "default",
+ "target_repo_name": "mozilla-aurora",
+ }, {
+ "polling_url": "https://hg.mozilla.org/integration/gaia-1_2/json-pushes?full=1",
+ "branch": "default",
+ "repo_url": "https://hg.mozilla.org/integration/gaia-1_2",
+ "repo_name": "gaia-1_2",
+ "target_push_url": "ssh://hg.mozilla.org/users/asasaki_mozilla.com/mozilla-aurora",
+ "target_pull_url": "https://hg.mozilla.org/users/asasaki_mozilla.com/mozilla-aurora",
+ "target_tag": "default",
+ "target_repo_name": "mozilla-aurora",
+ }],
+}
diff --git a/testing/mozharness/configs/users/sfink/mock.py b/testing/mozharness/configs/users/sfink/mock.py
new file mode 100644
index 000000000..07b5c5c43
--- /dev/null
+++ b/testing/mozharness/configs/users/sfink/mock.py
@@ -0,0 +1,3 @@
+config = {
+ "mock_target": "mozilla-centos6-x86_64",
+}
diff --git a/testing/mozharness/configs/users/sfink/spidermonkey.py b/testing/mozharness/configs/users/sfink/spidermonkey.py
new file mode 100644
index 000000000..efbc9a805
--- /dev/null
+++ b/testing/mozharness/configs/users/sfink/spidermonkey.py
@@ -0,0 +1,38 @@
+# This config file is for locally testing spidermonkey_build.py. It provides
+# the values that would otherwise be provided by buildbot.
+
+BRANCH = "local-src"
+HOME = "/home/sfink"
+REPO = HOME + "/src/MI-GC"
+
+config = {
+ "hgurl": "https://hg.mozilla.org/",
+ "python": "python",
+ "sixgill": HOME + "/src/sixgill",
+ "sixgill_bin": HOME + "/src/sixgill/bin",
+
+ "repo": REPO,
+ "repos": [{
+ "repo": REPO,
+ "branch": "default",
+ "dest": BRANCH,
+ }, {
+ "repo": "https://hg.mozilla.org/build/tools",
+ "branch": "default",
+ "dest": "tools"
+ }],
+
+ "tools_dir": "/tools",
+
+ "mock_target": "mozilla-centos6-x86_64",
+
+ "upload_remote_basepath": "/tmp/upload-base",
+ "upload_ssh_server": "localhost",
+ "upload_ssh_key": "/home/sfink/.ssh/id_rsa",
+ "upload_ssh_user": "sfink",
+ "upload_label": "linux64-br-haz",
+
+ # For testing tryserver uploads (directory structure is different)
+ #"branch": "try",
+ #"revision": "deadbeef1234",
+}
diff --git a/testing/mozharness/configs/web_platform_tests/prod_config.py b/testing/mozharness/configs/web_platform_tests/prod_config.py
new file mode 100644
index 000000000..f0fb0b074
--- /dev/null
+++ b/testing/mozharness/configs/web_platform_tests/prod_config.py
@@ -0,0 +1,47 @@
+# ***** BEGIN LICENSE BLOCK *****
+# 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/.
+# ***** END LICENSE BLOCK *****
+import os
+
+config = {
+ "options": [
+ "--prefs-root=%(test_path)s/prefs",
+ "--processes=1",
+ "--config=%(test_path)s/wptrunner.ini",
+ "--ca-cert-path=%(test_path)s/certs/cacert.pem",
+ "--host-key-path=%(test_path)s/certs/web-platform.test.key",
+ "--host-cert-path=%(test_path)s/certs/web-platform.test.pem",
+ "--certutil-binary=%(test_install_path)s/bin/certutil",
+ ],
+
+ "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_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+
+ "download_minidump_stackwalk": True,
+
+ "download_tooltool": True,
+
+ "tooltool_cache": "/builds/tooltool_cache",
+
+}
+
diff --git a/testing/mozharness/configs/web_platform_tests/prod_config_windows.py b/testing/mozharness/configs/web_platform_tests/prod_config_windows.py
new file mode 100644
index 000000000..7c0f525fe
--- /dev/null
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_windows.py
@@ -0,0 +1,48 @@
+# ***** BEGIN LICENSE BLOCK *****
+# 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/.
+# ***** END LICENSE BLOCK *****
+
+# This is a template config file for web-platform-tests test.
+
+import os
+import sys
+
+config = {
+ "options": [
+ "--prefs-root=%(test_path)s/prefs",
+ "--processes=1",
+ "--config=%(test_path)s/wptrunner.ini",
+ "--ca-cert-path=%(test_path)s/certs/cacert.pem",
+ "--host-key-path=%(test_path)s/certs/web-platform.test.key",
+ "--host-cert-path=%(test_path)s/certs/web-platform.test.pem",
+ "--certutil-binary=%(test_install_path)s/bin/certutil",
+ ],
+
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [sys.executable, '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_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+
+ "download_minidump_stackwalk": True,
+}
diff --git a/testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py b/testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py
new file mode 100644
index 000000000..845c66f76
--- /dev/null
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py
@@ -0,0 +1,48 @@
+# ***** BEGIN LICENSE BLOCK *****
+# 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/.
+# ***** END LICENSE BLOCK *****
+
+# This is a template config file for web-platform-tests test.
+
+import os
+import sys
+
+config = {
+ "options": [
+ "--prefs-root=%(test_path)s/prefs",
+ "--processes=1",
+ "--config=%(test_path)s/wptrunner.ini",
+ "--ca-cert-path=%(test_path)s/certs/cacert.pem",
+ "--host-key-path=%(test_path)s/certs/web-platform.test.key",
+ "--host-cert-path=%(test_path)s/certs/web-platform.test.pem",
+ "--certutil-binary=%(test_install_path)s/bin/certutil",
+ ],
+
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [
+ sys.executable,
+ os.path.join(os.path.dirname(sys.executable), 'Lib', 'site-packages', 'virtualenv.py')
+ ],
+ 'mozinstall': ['build/venv/scripts/python', 'build/venv/scripts/mozinstall-script.py'],
+ 'tooltool.py': [sys.executable, os.path.join(os.environ['MOZILLABUILD'], 'tooltool.py')],
+ 'hg': os.path.join(os.environ['PROGRAMFILES'], 'Mercurial', 'hg')
+ },
+
+ "proxxy": {},
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+
+ "pip_index": False,
+
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+
+ "blob_uploader_auth_file" : 'C:/builds/oauth.txt',
+
+ "download_minidump_stackwalk": True,
+}
diff --git a/testing/mozharness/configs/web_platform_tests/test_config.py b/testing/mozharness/configs/web_platform_tests/test_config.py
new file mode 100644
index 000000000..29dd8014b
--- /dev/null
+++ b/testing/mozharness/configs/web_platform_tests/test_config.py
@@ -0,0 +1,32 @@
+# ***** BEGIN LICENSE BLOCK *****
+# 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/.
+# ***** END LICENSE BLOCK *****
+
+config = {
+ "options": [
+ "--prefs-root=%(test_path)s/prefs",
+ "--processes=1",
+ "--config=%(test_path)s/wptrunner.ini",
+ "--ca-cert-path=%(test_path)s/certs/cacert.pem",
+ "--host-key-path=%(test_path)s/certs/web-platform.test.key",
+ "--host-cert-path=%(test_path)s/certs/web-platform.test.pem",
+ "--certutil-binary=%(test_install_path)s/bin/certutil",
+ ],
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'pull',
+ 'install',
+ 'run-tests',
+ ],
+
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+
+ "pip_index": False,
+}
diff --git a/testing/mozharness/configs/web_platform_tests/test_config_windows.py b/testing/mozharness/configs/web_platform_tests/test_config_windows.py
new file mode 100644
index 000000000..d83c136ea
--- /dev/null
+++ b/testing/mozharness/configs/web_platform_tests/test_config_windows.py
@@ -0,0 +1,43 @@
+# ***** BEGIN LICENSE BLOCK *****
+# 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/.
+# ***** END LICENSE BLOCK *****
+
+import os
+import sys
+
+config = {
+ "options": [
+ "--prefs-root=%(test_path)s/prefs",
+ "--processes=1",
+ "--config=%(test_path)s/wptrunner.ini",
+ "--ca-cert-path=%(test_path)s/certs/cacert.pem",
+ "--host-key-path=%(test_path)s/certs/web-platform.test.key",
+ "--host-cert-path=%(test_path)s/certs/web-platform.test.pem",
+ "--certutil-binary=%(test_install_path)s/bin/certutil",
+ ],
+
+ "exes": {
+ 'python': sys.executable,
+ 'virtualenv': [sys.executable, 'c:/mozilla-source/cedar/python/virtualenv/virtualenv.py'], #'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()],
+ },
+
+ "default_actions": [
+ 'clobber',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'pull',
+ 'install',
+ 'run-tests',
+ ],
+
+ "find_links": [
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+
+ "pip_index": False,
+}