Bug 1415617: Update desktop mozharness configs to specify mozconfig in parts. draft
authorTom Prince <mozilla@hocat.ca>
Wed, 08 Nov 2017 12:49:09 -0700
changeset 698728 24deb969ed732bc5b2965c862f4fcd8f9537fdd8
parent 698727 feb628cc02e6307974c5099d678fa90b1d965344
child 698729 f747d21b5cb308d7df7e26b7929fbd86b4adef3b
push id89339
push userbmo:mozilla@hocat.ca
push dateThu, 16 Nov 2017 01:32:27 +0000
bugs1415617
milestone59.0a1
Bug 1415617: Update desktop mozharness configs to specify mozconfig in parts. MozReview-Commit-ID: LrY8Ld9QwkS
testing/mozharness/configs/builds/branch_specifics.py
testing/mozharness/configs/builds/releng_base_firefox.py
testing/mozharness/configs/builds/releng_base_linux_32_builds.py
testing/mozharness/configs/builds/releng_base_linux_64_builds.py
testing/mozharness/configs/builds/releng_base_mac_64_builds.py
testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
testing/mozharness/configs/builds/releng_base_windows_32_builds.py
testing/mozharness/configs/builds/releng_base_windows_32_mingw_builds.py
testing/mozharness/configs/builds/releng_base_windows_64_builds.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_devedition.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_dmd.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_add-on-devel.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_reporter_tc.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_tc_and_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_devedition.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_dmd.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_fuzzing_asan_tc.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_noopt_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_opt.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_add-on-devel.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_noopt_debug.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_devedition.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_dmd.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_add-on-devel.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_devedition.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_dmd.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_add-on-devel.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_devedition.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_dmd.py
testing/mozharness/configs/builds/taskcluster_firefox_win32_clang.py
testing/mozharness/configs/builds/taskcluster_firefox_win32_clang_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win32_rusttests_opt.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_opt.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_ccov_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_clang.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_clang_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_noopt_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win64_rusttests_opt.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_32_addondevel.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_32_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_32_opt.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_64_addondevel.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_64_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_windows_64_opt.py
--- a/testing/mozharness/configs/builds/branch_specifics.py
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -47,33 +47,33 @@ config = {
     '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',
+                'mozconfig_variant': 'release',
                 'force_clobber': True,
             },
             'linux64': {
-                'src_mozconfig': 'browser/config/mozconfigs/linux64/release',
+                'mozconfig_variant': 'release',
                 'force_clobber': True,
             },
             'macosx64': {
-                'src_mozconfig': 'browser/config/mozconfigs/macosx64/release',
+                'mozconfig_variant': 'release',
                 'force_clobber': True,
             },
             'win32': {
-                'src_mozconfig': 'browser/config/mozconfigs/win32/release',
+                'mozconfig_variant': 'release',
                 'force_clobber': True,
             },
             'win64': {
-                'src_mozconfig': 'browser/config/mozconfigs/win64/release',
+                'mozconfig_variant': 'release',
                 'force_clobber': True,
             },
             'linux-debug': {
                 'update_channel': 'default',
             },
             'linux64-debug': {
                 'update_channel': 'default',
             },
@@ -121,33 +121,33 @@ config = {
     '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',
+                'mozconfig_variant': 'beta',
                 'force_clobber': True,
             },
             'linux64': {
-                'src_mozconfig': 'browser/config/mozconfigs/linux64/beta',
+                'mozconfig_variant': 'beta',
                 'force_clobber': True,
             },
             'macosx64': {
-                'src_mozconfig': 'browser/config/mozconfigs/macosx64/beta',
+                'mozconfig_variant': 'beta',
                 'force_clobber': True,
             },
             'win32': {
-                'src_mozconfig': 'browser/config/mozconfigs/win32/beta',
+                'mozconfig_variant': 'beta',
                 'force_clobber': True,
             },
             'win64': {
-                'src_mozconfig': 'browser/config/mozconfigs/win64/beta',
+                'mozconfig_variant': 'beta',
                 'force_clobber': True,
             },
             'linux-devedition': {
                 "update_channel": "aurora",
             },
             'linux64-devedition': {
                 "update_channel": "aurora",
             },
@@ -286,23 +286,23 @@ config = {
         'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
     },
     # 'holly': {},
     'jamun': {
         'update_channel': 'beta',
         'enable_release_promotion': 1,
         'platform_overrides': {
             'linux': {
-                'src_mozconfig': 'browser/config/mozconfigs/linux32/release',
+                'mozconfig_variant': 'release',
             },
             'linux-debug': {
                 'update_channel': 'default',
             },
             'linux64': {
-                'src_mozconfig': 'browser/config/mozconfigs/linux64/release',
+                'mozconfig_variant': 'release',
             },
             'linux64-debug': {
                 'update_channel': 'default',
             },
             'linux64-asan-debug': {
                 'update_channel': 'default',
             },
             'linux64-asan': {
@@ -310,35 +310,35 @@ config = {
             },
             'linux64-st-an-debug': {
                 'update_channel': 'default',
             },
             'linux64-st-an': {
                 'update_channel': 'default',
             },
             'macosx64': {
-                'src_mozconfig': 'browser/config/mozconfigs/macosx64/release',
+                'mozconfig_variant': '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',
+                'mozconfig_variant': 'release',
             },
             'win32-debug': {
                 'update_channel': 'default',
             },
             'win64': {
-                'src_mozconfig': 'browser/config/mozconfigs/win64/release',
+                'mozconfig_variant': 'release',
             },
             'win64-debug': {
                 'update_channel': 'default',
             },
             'linux-devedition': {
                 "update_channel": "aurora",
             },
             'linux64-devedition': {
--- a/testing/mozharness/configs/builds/releng_base_firefox.py
+++ b/testing/mozharness/configs/builds/releng_base_firefox.py
@@ -1,3 +1,4 @@
 config = {
     'objdir': 'obj-firefox',
+    'app_name': 'browser',
 }
--- a/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
@@ -141,11 +141,12 @@ config = {
         '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',
+    'mozconfig_platform': 'linux32',
+    'mozconfig_variant': 'nightly',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
@@ -120,11 +120,12 @@ config = {
         ### 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',
+    'mozconfig_platform': 'linux64',
+    'mozconfig_variant': 'nightly',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -60,12 +60,13 @@ config = {
         '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/macosx64/nightly',
+    'mozconfig_platform': 'macosx64',
+    'mozconfig_variant': 'nightly',
     'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
@@ -64,12 +64,13 @@ config = {
         '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',
+    'mozconfig_platform': 'macosx64',
+    'mozconfig_variant': 'nightly',
     'artifact_flag_build_variant_in_try': 'cross-artifact',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
@@ -72,12 +72,13 @@ config = {
         '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',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/win32/nightly',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'nightly',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_windows_32_mingw_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_mingw_builds.py
@@ -70,11 +70,12 @@ config = {
         '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',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/win32/mingw32',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'mingw32',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
@@ -70,12 +70,13 @@ config = {
         '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',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/win64/nightly',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'nightly',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
@@ -99,13 +99,13 @@ config = {
         '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',
+    'mozconfig_variant': 'artifact',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
 releng.manifest",
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
@@ -30,11 +30,11 @@ config = {
         # 32 bit specific
         'PATH': '/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/lib64:%(abs_obj_dir)s/dist/bin',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux32/debug',
+    'mozconfig_variant': 'debug',
     #######################
 }
--- 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
@@ -103,13 +103,13 @@ config = {
         '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',
+    'mozconfig_variant': 'debug-artifact',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
 releng.manifest",
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_devedition.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_devedition.py
@@ -1,6 +1,6 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/linux32/devedition',
+    'mozconfig_variant': 'devedition',
     'base_name': 'Linux_%(branch)_devedition',
     'force_clobber': True,
     'stage_platform': 'linux-devedition',
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_dmd.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_dmd.py
@@ -1,3 +1,3 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/linux32/opt-dmd',
+    'mozconfig_variant': 'opt-dmd',
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests.py
@@ -28,12 +28,12 @@ config = {
         # 32 bit specific
         'PATH': '/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/lib64:%(abs_obj_dir)s/dist/bin',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux32/rusttests',
+    'mozconfig_variant': 'rusttests',
     'artifact_flag_build_variant_in_try': None,
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_rusttests_debug.py
@@ -29,12 +29,12 @@ config = {
         # 32 bit specific
         'PATH': '/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/lib64:%(abs_obj_dir)s/dist/bin',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux32/rusttests-debug',
+    'mozconfig_variant': 'rusttests-debug',
     'artifact_flag_build_variant_in_try': None,
     #######################
 }
--- 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
@@ -31,11 +31,11 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/builds/worker/workspace/build/src/gcc/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',
+    'mozconfig_variant': 'add-on-devel',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
@@ -80,11 +80,13 @@ config = {
         ### 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',
+    # This doesn't actually inherit from anything.
+    'mozconfig_platform': 'linux64',
+    'mozconfig_variant': 'artifact',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
@@ -34,11 +34,11 @@ releng.manifest",
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'nightly-asan',
     #######################
 }
--- 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
@@ -35,11 +35,11 @@ releng.manifest",
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'debug-asan',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_reporter_tc.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_reporter_tc.py
@@ -34,11 +34,11 @@ config = {
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'ASAN_OPTIONS': 'detect_leaks=0',
         ## 64 bit specific
         'PATH': '/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-reporter',
+    'mozconfig_variant': 'nightly-asan-reporter',
     #######################
 }
--- 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
@@ -32,11 +32,11 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'nightly-asan',
     #######################
 }
--- 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
@@ -33,11 +33,11 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'debug-asan',
     #######################
 }
--- 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
@@ -31,11 +31,11 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'code-coverage',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
@@ -30,11 +30,11 @@ config = {
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         # 64 bit specific
         'PATH': '/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:%(abs_obj_dir)s/dist/bin',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/debug',
+    'mozconfig_variant': 'debug',
     #######################
 }
--- 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
@@ -76,13 +76,13 @@ config = {
         ### 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',
+    'mozconfig_variant': 'debug-artifact',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
 releng.manifest",
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_devedition.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_devedition.py
@@ -1,6 +1,6 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/devedition',
+    'mozconfig_variant': 'devedition',
     'base_name': 'Linux_x86-64_%(branch)_devedition',
     'force_clobber': True,
     'stage_platform': 'linux64-devedition',
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_dmd.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_dmd.py
@@ -1,3 +1,3 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/opt-dmd',
+    'mozconfig_variant': 'opt-dmd',
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_fuzzing_asan_tc.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_fuzzing_asan_tc.py
@@ -34,11 +34,11 @@ config = {
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'ASAN_OPTIONS': 'detect_leaks=0',
         ## 64 bit specific
         'PATH': '/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-fuzzing-asan',
+    'mozconfig_variant': 'nightly-fuzzing-asan',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_noopt_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_noopt_debug.py
@@ -29,10 +29,10 @@ config = {
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         # 64 bit specific
         'PATH': '/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:%(abs_obj_dir)s/dist/bin',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/noopt-debug',
+    'mozconfig_variant': 'noopt-debug',
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests.py
@@ -29,12 +29,12 @@ config = {
         '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/rusttests',
+    'mozconfig_variant': 'rusttests',
     'artifact_flag_build_variant_in_try': None,
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_rusttests_debug.py
@@ -28,11 +28,11 @@ config = {
         '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:%(abs_obj_dir)s/dist/bin',
         'TINDERBOX_OUTPUT': '1',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/rusttests-debug',
+    'mozconfig_variant': 'rusttests-debug',
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
@@ -10,10 +10,10 @@ config = {
     '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
     'env': {
         'MOZ_OBJDIR': '%(abs_obj_dir)s',
         'TINDERBOX_OUTPUT': '1',
         'LC_ALL': 'C',
     },
-    'src_mozconfig': 'browser/config/mozconfigs/linux64/source',
+    'mozconfig_variant': 'source',
 }
--- 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
@@ -70,12 +70,14 @@ config = {
         ### 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-static-analysis-clang',
+    # This doesn't actually inherit from anything.
+    'mozconfig_platform': 'linux64',
+    'mozconfig_variant': 'debug-static-analysis-clang',
     #######################
     'artifact_flag_build_variant_in_try': None,
 }
--- 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
@@ -70,12 +70,14 @@ config = {
         ### 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',
+    # This doesn't actually inherit from anything.
+    'mozconfig_platform': 'linux64',
+    'mozconfig_variant': 'opt-static-analysis-clang',
     #######################
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
@@ -34,12 +34,12 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/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',
+    'mozconfig_variant': 'valgrind',
     #######################
     'artifact_flag_build_variant_in_try': None,
 }
--- 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
@@ -31,11 +31,11 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/tools/python/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',
+    'mozconfig_variant': 'add-on-devel',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
@@ -49,12 +49,12 @@ config = {
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         ## 64 bit specific
         'PATH': '/tools/python/bin:/opt/local/bin:/usr/bin:'
                 '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
         ##
     },
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/artifact',
+    'mozconfig_variant': 'artifact',
     'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_artifact.py
@@ -1,4 +1,4 @@
 config = {
     'perfherder_extra_options': ['artifact'],
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/artifact',
+    'mozconfig_variant': 'artifact',
 }
--- 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
@@ -28,12 +28,12 @@ config = {
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         ## 64 bit specific
         'PATH': '/tools/python/bin:/opt/local/bin:/usr/bin:'
                 '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
         ##
     },
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug',
+    'mozconfig_variant': 'debug',
     'artifact_flag_build_variant_in_try': 'cross-debug-artifact',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_artifact.py
@@ -1,4 +1,4 @@
 config = {
     'perfherder_extra_options': ['artifact'],
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug-artifact',
+    'mozconfig_variant': 'debug-artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_noopt_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_noopt_debug.py
@@ -28,12 +28,12 @@ config = {
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         ## 64 bit specific
         'PATH': '/tools/python/bin:/opt/local/bin:/usr/bin:'
                 '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
         ##
     },
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/cross-noopt-debug',
+    'mozconfig_variant': 'cross-noopt-debug',
     'artifact_flag_build_variant_in_try': 'cross-debug-artifact',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
@@ -30,11 +30,11 @@ config = {
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         ## 64 bit specific
         'PATH': '/tools/python/bin:/opt/local/bin:/usr/bin:'
                 '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
         ##
     },
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug',
+    'mozconfig_variant': 'debug',
     #######################
 }
--- 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
@@ -47,11 +47,11 @@ config = {
         'LC_ALL': 'C',
         # debug-specific
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         ## 64 bit specific
         'PATH': '/tools/python/bin:/opt/local/bin:/usr/bin:'
                 '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
         ##
     },
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug-artifact',
+    'mozconfig_variant': 'debug-artifact',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_devedition.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_devedition.py
@@ -1,10 +1,10 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/devedition',
+    'mozconfig_variant': 'devedition',
     'force_clobber': True,
     'stage_platform': 'macosx64-devedition',
     'stage_product': 'devedition',
 
     # Enable sendchanges for bug 1372412
     'enable_talos_sendchange': False,
     'enable_unittest_sendchange': False,
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_dmd.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_dmd.py
@@ -1,3 +1,3 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/macosx64/opt-dmd',
+    'mozconfig_variant': 'opt-dmd',
 }
--- 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
@@ -34,11 +34,11 @@ clang.manifest",
         'CCACHE_COMPRESS': '1',
         'CCACHE_UMASK': '002',
         'LC_ALL': 'C',
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         # 64 bit specific
         'PATH': '/tools/python/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',
+    'mozconfig_variant': 'debug-static-analysis',
     #######################
 }
--- 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
@@ -26,11 +26,11 @@ config = {
                 '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',
+    'mozconfig_variant': 'add-on-devel',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_artifact.py
@@ -1,7 +1,7 @@
 import os
 import sys
 
 config = {
     'base_name': 'WINNT_5.2_%(branch)s_Artifact_build',
-    'src_mozconfig': 'browser/config/mozconfigs/win32/artifact',
+    'mozconfig_variant': 'artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
@@ -26,11 +26,11 @@ config = {
                 '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',
+    'mozconfig_variant': 'debug',
     #######################
 }
--- 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
@@ -1,7 +1,7 @@
 import os
 import sys
 
 config = {
     'base_name': 'WINNT_5.2_%(branch)s_Artifact_build',
-    'src_mozconfig': 'browser/config/mozconfigs/win32/debug-artifact',
+    'mozconfig_variant': 'debug-artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_devedition.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_devedition.py
@@ -1,6 +1,6 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/win32/devedition',
+    'mozconfig_variant': 'devedition',
     'force_clobber': True,
     'stage_platform': 'win32-devedition',
     'stage_product': 'devedition',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_dmd.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_dmd.py
@@ -1,3 +1,3 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/win32/opt-dmd',
+    'mozconfig_variant': 'opt-dmd',
 }
--- 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
@@ -29,13 +29,13 @@ releng.manifest",
                 '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',
+    'mozconfig_variant': 'debug-static-analysis',
     'purge_minsize': 9,
     'artifact_flag_build_variant_in_try': None,
     #######################
 }
--- 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
@@ -25,11 +25,11 @@ config = {
                 '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',
+    'mozconfig_variant': 'add-on-devel',
     #######################
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_artifact.py
@@ -1,7 +1,7 @@
 import os
 import sys
 
 config = {
     'base_name': 'WINNT_6.1_x86-64_%(branch)s_Artifact_build',
-    'src_mozconfig': 'browser/config/mozconfigs/win64/artifact',
+    'mozconfig_variant': 'artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
@@ -25,11 +25,11 @@ config = {
                 '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',
+    'mozconfig_variant': 'debug',
     #######################
 }
--- 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
@@ -1,7 +1,7 @@
 import os
 import sys
 
 config = {
     'base_name': 'WINNT_6.1_x86-64_%(branch)s_Artifact_build',
-    'src_mozconfig': 'browser/config/mozconfigs/win64/debug-artifact',
+    'mozconfig_variant': 'debug-artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_devedition.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_devedition.py
@@ -1,6 +1,6 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/win64/devedition',
+    'mozconfig_variant': 'devedition',
     'force_clobber': True,
     'stage_platform': 'win64-devedition',
     'stage_product': 'devedition',
 }
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_dmd.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_dmd.py
@@ -1,3 +1,3 @@
 config = {
-    'src_mozconfig': 'browser/config/mozconfigs/win64/opt-dmd',
+    'mozconfig_variant': 'opt-dmd',
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win32_clang.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_clang.py
@@ -59,12 +59,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\clang',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'clang',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win32_clang_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_clang_debug.py
@@ -61,12 +61,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\clang-debug',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'clang-debug',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.py
@@ -62,12 +62,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\noopt-debug',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'noopt-debug',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win32_rusttests_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_rusttests_opt.py
@@ -58,12 +58,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\rusttests',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'rusttests',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_debug.py
@@ -56,11 +56,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\debug-asan',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'debug-asan',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_asan_opt.py
@@ -54,11 +54,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\nightly-asan',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'nightly-asan',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_ccov_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_ccov_debug.py
@@ -64,12 +64,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\code-coverage',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'code-coverage',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_clang.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_clang.py
@@ -55,12 +55,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\clang',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'clang',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_clang_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_clang_debug.py
@@ -57,12 +57,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\clang-debug',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'clang-debug',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_noopt_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_noopt_debug.py
@@ -56,12 +56,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\noopt-debug',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'noopt-debug',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win64_rusttests_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win64_rusttests_opt.py
@@ -55,12 +55,13 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\rusttests',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'rusttests',
     'artifact_flag_build_variant_in_try': None,
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_addondevel.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_addondevel.py
@@ -58,11 +58,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser/config/mozconfigs/win32/add-on-devel',
+    'mozconfig_platform': '32',
+    'mozconfig_variant': 'add-on-devel',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_debug.py
@@ -60,11 +60,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\debug',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'debug',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_opt.py
@@ -59,11 +59,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win32\\nightly',
+    'mozconfig_platform': 'win32',
+    'mozconfig_variant': 'nightly',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_addondevel.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_addondevel.py
@@ -55,11 +55,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser/config/mozconfigs/win64/add-on-devel',
+    'mozconfig_platform': '64',
+    'mozconfig_variant': 'add-on-devel',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_debug.py
@@ -56,11 +56,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\debug',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'debug',
     #########################################################################
 }
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_opt.py
@@ -55,11 +55,12 @@ config = {
     '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': os.path.join(os.getcwd(), 'public', 'build'),
     },
-    'src_mozconfig': 'browser\\config\\mozconfigs\\win64\\nightly',
+    'mozconfig_platform': 'win64',
+    'mozconfig_variant': 'nightly',
     #########################################################################
 }