Bug 1305534 - Add debug artifact builds on try; r=chmanchester
authorMaja Frydrychowicz <mjzffr@gmail.com>
Tue, 18 Oct 2016 11:18:58 -0400
changeset 320070 97db1163c72973f0027e25591b09819a903c2b50
parent 320069 425c0602ccb486822c4974aa5f7d367597d2b259
child 320071 9f0e99ac3fca2edfe9ba5964b20cabff6a0c3705
push id20749
push userryanvm@gmail.com
push dateSat, 29 Oct 2016 13:21:21 +0000
treeherderfx-team@1b170b39ed6b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerschmanchester
bugs1305534
milestone52.0a1
Bug 1305534 - Add debug artifact builds on try; r=chmanchester MozReview-Commit-ID: Gg46RzHarO1
browser/config/mozconfigs/linux32/debug-artifact
browser/config/mozconfigs/linux64/debug-artifact
browser/config/mozconfigs/macosx64/debug-artifact
browser/config/mozconfigs/win32/debug-artifact
browser/config/mozconfigs/win64/debug-artifact
testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug_artifact.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/mozharness/scripts/fx_desktop_build.py
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/linux32/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.linux32"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/debug-artifact
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/unix/mozconfig.linux"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
+
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/macosx64/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/build/macosx/mozconfig.common"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+unset CC
+unset CXX
+
+ac_add_options --enable-debug
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/win32/debug-artifact
@@ -0,0 +1,12 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win32/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+
+ac_add_options --enable-debug
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/win64/debug-artifact
@@ -0,0 +1,13 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_L10N_CHECK=0
+
+. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"
+. "$topsrcdir/browser/config/mozconfigs/common"
+. "$topsrcdir/build/mozconfig.win-common"
+. "$topsrcdir/build/win64/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-artifact-builds
+ac_add_options --enable-artifact-build-symbols
+
+ac_add_options --enable-debug
new file mode 100644
--- /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",
+    #########################################################################
+}
new file mode 100644
--- /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",
+    #######################
+}
new file mode 100644
--- /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',
+    #########################################################################
+}
new file mode 100644
--- /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",
+    #########################################################################
+}
new file mode 100644
--- /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",
+    #########################################################################
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -359,16 +359,17 @@ class BuildOptionParser(object):
         'api-15-gradle': 'builds/releng_sub_%s_configs/%s_api_15_gradle.py',
         'x86': 'builds/releng_sub_%s_configs/%s_x86.py',
         'api-15-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_15_partner_sample1.py',
         'android-test': 'builds/releng_sub_%s_configs/%s_test.py',
         'android-checkstyle': 'builds/releng_sub_%s_configs/%s_checkstyle.py',
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'valgrind' : 'builds/releng_sub_%s_configs/%s_valgrind.py',
         'artifact': 'builds/releng_sub_%s_configs/%s_artifact.py',
+        'debug-artifact': 'builds/releng_sub_%s_configs/%s_debug_artifact.py',
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'
     branch_cfg_file = 'builds/branch_specifics.py'
 
     @classmethod
     def _query_pltfrm_and_bits(cls, target_option, options):
         """ determine platform and bits
 
--- a/testing/mozharness/scripts/fx_desktop_build.py
+++ b/testing/mozharness/scripts/fx_desktop_build.py
@@ -121,17 +121,20 @@ class FxDesktopBuild(BuildScript, TryToo
                 self.set_buildbot_property('stage_platform',
                                            platform_for_log_url,
                                            write_to_file=True)
             else:
                 self.fatal("'stage_platform' not determined and is required in your config")
 
         if self.try_message_has_flag('artifact'):
             self.info('Artifact build requested in try syntax.')
-            self._update_build_variant(rw_config)
+            variant = 'artifact'
+            if c.get('build_variant') in ['debug', 'cross-debug']:
+                variant = 'debug-artifact'
+            self._update_build_variant(rw_config, variant)
 
     # helpers
     def _update_build_variant(self, rw_config, variant='artifact'):
         """ Intended for use in _pre_config_lock """
         c = self.config
         variant_cfg_path, _ = BuildOptionParser.find_variant_cfg_path(
             '--custom-build-variant-cfg',
             variant,