Bug 1465659 - Move perfherder extra options from mozharness to taskcluster. r=nalexander
authorMike Hommey <mh+mozilla@glandium.org>
Thu, 31 May 2018 13:02:38 +0900
changeset 474996 dfb4c974e3b03eed033cc8beb77cd2cf19b52bd4
parent 474995 5fc13d0a68ad0c5bc1c968c62ca8314812b7acc1
child 474997 f364ab92b59ebeafe26ef6d579328c35a4bb99a0
push id9374
push userjlund@mozilla.com
push dateMon, 18 Jun 2018 21:43:20 +0000
treeherdermozilla-beta@160e085dfb0b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnalexander
bugs1465659
milestone62.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1465659 - Move perfherder extra options from mozharness to taskcluster. r=nalexander While some builds have a PERFHERDER_EXTRA_OPTIONS environment set on the taskcluster side, many others have the equivalent set at the mozharness level. But only the former are actually linted against, which, unsurprisingly, translates to conflicting values between some of the mozharness configs. So we move those configurations to taskcluster, enable the lint on all the kinds that look like builds (based on them using the build_attrs transform), and adjust the values to stop conflicting. Notably, for searchfox and static-analysis-autotest.
taskcluster/ci/artifact-build/kind.yml
taskcluster/ci/hazard/kind.yml
taskcluster/ci/searchfox/kind.yml
taskcluster/ci/spidermonkey/kind.yml
taskcluster/ci/static-analysis-autotest/kind.yml
taskcluster/ci/static-analysis/kind.yml
taskcluster/ci/valgrind/kind.yml
testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_searchfox_and_debug.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_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_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_searchfox.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug_artifact.py
testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
testing/mozharness/configs/builds/releng_sub_windows_configs/32_stat_and_debug.py
testing/mozharness/configs/builds/taskcluster_sub_win32/clang.py
testing/mozharness/configs/builds/taskcluster_sub_win32/clang_debug.py
testing/mozharness/configs/builds/taskcluster_sub_win64/clang.py
testing/mozharness/configs/builds/taskcluster_sub_win64/clang_debug.py
testing/mozharness/configs/builds/taskcluster_sub_win64/searchfox_debug.py
testing/mozharness/mozharness/base/python.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
--- a/taskcluster/ci/artifact-build/kind.yml
+++ b/taskcluster/ci/artifact-build/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 jobs:
     linux64-artifact/opt:
         description: "Linux64 Opt Artifact Build"
         index:
@@ -23,16 +24,18 @@ jobs:
             platform: linux64/opt
             kind: build
             symbol: AB
             tier: 2
         run-on-projects: ['trunk', 'try']
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             max-run-time: 36000
+            env:
+                PERFHERDER_EXTRA_OPTIONS: artifact
         run:
             using: mozharness
             actions: [get-secrets build]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_artifact.py
             script: "mozharness/scripts/fx_desktop_build.py"
             secrets: true
--- a/taskcluster/ci/hazard/kind.yml
+++ b/taskcluster/ci/hazard/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     treeherder:
         kind: build
         tier: 1
--- a/taskcluster/ci/searchfox/kind.yml
+++ b/taskcluster/ci/searchfox/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     index:
         product: firefox
     treeherder:
@@ -27,16 +28,18 @@ jobs:
         description: "Linux64 Debug Searchfox"
         index:
             job-name: linux64-searchfox-debug
         treeherder:
             platform: linux64/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             max-run-time: 36000
+            env:
+                PERFHERDER_EXTRA_OPTIONS: searchfox
         run:
             using: mozharness
             actions: [build]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_searchfox_and_debug.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
@@ -51,16 +54,17 @@ jobs:
             job-name: macosx64-searchfox-debug
         treeherder:
             platform: osx-cross/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
         worker:
             max-run-time: 36000
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: searchfox
         run:
             using: mozharness
             actions: [get-secrets build update]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_base_mac_64_cross_builds.py
             script: "mozharness/scripts/fx_desktop_build.py"
             custom-build-variant-cfg: cross-debug-searchfox
@@ -84,16 +88,17 @@ jobs:
             job-name: win64-searchfox-debug
         treeherder:
             platform: windows2012-64/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
         worker:
             max-run-time: 7200
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: searchfox
         run:
             using: mozharness
             options: [append-env-variables-from-configs]
             script: mozharness/scripts/fx_desktop_build.py
             config:
                 - builds/releng_base_firefox.py
                 - builds/taskcluster_base_windows.py
                 - builds/taskcluster_base_win64.py
--- a/taskcluster/ci/spidermonkey/kind.yml
+++ b/taskcluster/ci/spidermonkey/kind.yml
@@ -5,16 +5,17 @@
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.spidermonkey:transforms
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     treeherder:
         kind: build
         tier: 1
--- a/taskcluster/ci/static-analysis-autotest/kind.yml
+++ b/taskcluster/ci/static-analysis-autotest/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     index:
         product: firefox
     treeherder:
@@ -26,16 +27,18 @@ jobs:
         description: "Linux64 Debug Static Analysis Autotest"
         index:
             job-name: linux64-st-autotest-debug
         treeherder:
             platform: linux64/debug
         worker-type: aws-provisioner-v1/gecko-t-linux-large
         worker:
             max-run-time: 3600
+            env:
+                PERFHERDER_EXTRA_OPTIONS: static-analysis-autotest
         run:
             using: mozharness
             actions: [static-analysis-autotest]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_stat_and_debug.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
--- a/taskcluster/ci/static-analysis/kind.yml
+++ b/taskcluster/ci/static-analysis/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     index:
         product: firefox
     treeherder:
@@ -26,16 +27,18 @@ jobs:
         description: "Linux64 Debug Static Analysis"
         index:
             job-name: linux64-st-an-debug
         treeherder:
             platform: linux64/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             max-run-time: 36000
+            env:
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             actions: [build]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_stat_and_debug.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
@@ -49,16 +52,18 @@ jobs:
         description: "Linux64 Opt Static Analysis"
         index:
             job-name: linux64-st-an-opt
         treeherder:
             platform: linux64/opt
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             max-run-time: 36000
+            env:
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             actions: [build]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_stat_and_opt.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
@@ -77,16 +82,17 @@ jobs:
             platform: windows2012-32/debug
             symbol: S
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
         worker:
             max-run-time: 7200
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             options: [append-env-variables-from-configs]
             script: mozharness/scripts/fx_desktop_build.py
             config:
                 - builds/releng_base_firefox.py
                 - builds/taskcluster_base_windows.py
                 - builds/taskcluster_base_win32.py
@@ -105,16 +111,17 @@ jobs:
             platform: windows2012-32/opt
             symbol: S
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
         worker:
             max-run-time: 7200
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             options: [append-env-variables-from-configs]
             script: mozharness/scripts/fx_desktop_build.py
             config:
                 - builds/releng_base_firefox.py
                 - builds/taskcluster_base_windows.py
                 - builds/taskcluster_base_win32.py
@@ -133,16 +140,17 @@ jobs:
             platform: windows2012-64/debug
             symbol: S
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
         worker:
             max-run-time: 7200
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             options: [append-env-variables-from-configs]
             script: mozharness/scripts/fx_desktop_build.py
             config:
                 - builds/releng_base_firefox.py
                 - builds/taskcluster_base_windows.py
                 - builds/taskcluster_base_win64.py
@@ -161,16 +169,17 @@ jobs:
             platform: windows2012-64/opt
             symbol: S
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
         worker:
             max-run-time: 7200
             env:
                 TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
+                PERFHERDER_EXTRA_OPTIONS: static-analysis
         run:
             using: mozharness
             options: [append-env-variables-from-configs]
             script: mozharness/scripts/fx_desktop_build.py
             config:
                 - builds/releng_base_firefox.py
                 - builds/taskcluster_base_windows.py
                 - builds/taskcluster_base_win64.py
--- a/taskcluster/ci/valgrind/kind.yml
+++ b/taskcluster/ci/valgrind/kind.yml
@@ -4,16 +4,17 @@
 
 loader: taskgraph.loader.transform:loader
 
 kind-dependencies:
     - toolchain
 
 transforms:
     - taskgraph.transforms.build_attrs:transforms
+    - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 jobs:
     linux64-valgrind/opt:
         description: "Linux64 Valgrind Opt"
         index:
@@ -23,16 +24,18 @@ jobs:
             platform: linux64/opt
             symbol: V
             kind: build
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             docker-image: {in-tree: valgrind-build}
             max-run-time: 72000
+            env:
+                PERFHERDER_EXTRA_OPTIONS: valgrind
         run:
             using: mozharness
             actions: [get-secrets build valgrind-test]
             custom-build-variant-cfg: valgrind
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_base_linux_64_builds.py
             script: "mozharness/scripts/fx_desktop_build.py"
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_artifact.py
@@ -11,17 +11,16 @@ config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
     # allows triggering of dependent jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 32 bit specific ######
     'base_name': 'Linux_%(branch)s_Artifact_build',
     'platform': 'linux',
     'stage_platform': 'linux',
--- 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
@@ -13,17 +13,16 @@ config = {
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
     # debug specific
     'debug_build': True,
     # allows triggering of test jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 32 bit specific ######
     'base_name': 'Linux_%(branch)s_Artifact_build',
     'platform': 'linux',
     'stage_platform': 'linux-debug',
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_artifact.py
@@ -12,17 +12,16 @@ config = {
          'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
          'min_scm_level': 1},
         {'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'},
     ],
     'vcs_share_base': '/builds/hg-shared',
     # allows triggering of dependent jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'Linux_x86-64_%(branch)s_Artifact_build',
     'platform': 'linux64',
     'stage_platform': 'linux64',
--- 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
@@ -6,17 +6,16 @@ config = {
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     'vcs_share_base': '/builds/hg-shared',
     # debug specific
     'debug_build': True,
     # decides whether we want to use moz_sign_cmd in env
     # allows triggering of test jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'Linux_x86-64_%(branch)s_Artifact_build',
     'platform': 'linux64',
     'stage_platform': 'linux64-debug',
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_searchfox_and_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_searchfox_and_debug.py
@@ -4,17 +4,16 @@ config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
-    'perfherder_extra_options': ['static-analysis'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'Linux_x86-64_%(branch)s_Searchfox',
     'platform': 'linux64',
     'stage_platform': 'linux64-searchfox-opt',
--- 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
@@ -4,17 +4,16 @@ config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
-    'perfherder_extra_options': ['static-analysis'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'Linux_x86-64_%(branch)s_Static_Analysis',
     'platform': 'linux64',
     'stage_platform': 'linux64-st-an-opt',
--- 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
@@ -4,17 +4,16 @@ config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
-    'perfherder_extra_options': ['static-analysis'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'Linux_x86-64_%(branch)s_Static_Analysis',
     'platform': 'linux64',
     'stage_platform': 'linux64-st-an',
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_valgrind.py
@@ -4,17 +4,16 @@ config = {
     'default_actions': [
         'clobber',
         'build',
         'check-test',
         'valgrind-test',
         #'update',
     ],
     'stage_platform': 'linux64-valgrind',
-    'perfherder_extra_options': ['valgrind'],
     #### 64 bit build specific #####
     'env': {
         'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
         'DISPLAY': ':2',
         'HG_SHARE_BASE_DIR': '/builds/hg-shared',
         'MOZ_OBJDIR': '%(abs_obj_dir)s',
         'TINDERBOX_OUTPUT': '1',
         'TOOLTOOL_CACHE': '/builds/tooltool_cache',
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_artifact.py
@@ -6,17 +6,16 @@ config = {
 
     'default_actions': [
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
     # allows triggering of dependent jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'OS X 10.7 %(branch)s_Artifact_build',
     'platform': 'macosx64',
     'stage_platform': 'macosx64',
--- 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,3 @@
 config = {
-    'perfherder_extra_options': ['artifact'],
     'mozconfig_variant': '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,3 @@
 config = {
-    'perfherder_extra_options': ['artifact'],
     'mozconfig_variant': 'debug-artifact',
 }
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_searchfox.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_cross_debug_searchfox.py
@@ -3,17 +3,16 @@ import os
 config = {
     'default_actions': [
         'clobber',
         'build',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'macosx64-searchfox-debug',
     'debug_build': True,
-    'perfherder_extra_options': ['static-analysis'],
     #### 64 bit build specific #####
     'env': {
         'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
         'HG_SHARE_BASE_DIR': '/builds/hg-shared',
         'MOZ_OBJDIR': '%(abs_obj_dir)s',
         'TINDERBOX_OUTPUT': '1',
         'TOOLTOOL_CACHE': '/builds/tooltool_cache',
         'TOOLTOOL_HOME': '/builds',
--- 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
@@ -8,17 +8,16 @@ config = {
         'build',
     ],
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'vcs_share_base': '/builds/hg-shared',
     # debug specific
     'debug_build': True,
     # allows triggering of test jobs when --artifact try syntax is detected
-    'perfherder_extra_options': ['artifact'],
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'OS X 10.7 %(branch)s_Artifact_build',
     'platform': 'macosx64',
     'stage_platform': 'macosx64-debug',
--- 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
@@ -5,17 +5,16 @@ config = {
         'clobber',
         'build',
         'update',  # decided by query_is_nightly()
     ],
     'debug_build': True,
     'stage_platform': 'macosx64-st-an-debug',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/macosx64/\
 clang.manifest",
-    'perfherder_extra_options': ['static-analysis'],
     #### 64 bit build specific #####
     'env': {
         'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
         'HG_SHARE_BASE_DIR': '/builds/hg-shared',
         'MOZ_OBJDIR': '%(abs_obj_dir)s',
         'TINDERBOX_OUTPUT': '1',
         'TOOLTOOL_CACHE': '/builds/tooltool_cache',
         'TOOLTOOL_HOME': '/builds',
--- 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
@@ -5,17 +5,16 @@ config = {
         'clobber',
         'build',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'win32-st-an-debug',
     'debug_build': True,
     'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/\
 releng.manifest",
-    'perfherder_extra_options': ['static-analysis'],
     #### 32 bit build specific #####
     'env': {
         'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
         'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
         'MOZ_CRASHREPORTER_NO_REPORT': '1',
         'MOZ_OBJDIR': '%(abs_obj_dir)s',
         'PATH': 'C:/mozilla-build/nsis-3.01;C:/mozilla-build/python27;'
                 '%s' % (os.environ.get('path')),
--- a/testing/mozharness/configs/builds/taskcluster_sub_win32/clang.py
+++ b/testing/mozharness/configs/builds/taskcluster_sub_win32/clang.py
@@ -1,6 +1,5 @@
 config = {
-    'perfherder_extra_options': ['static-analysis'],
     'stage_platform': 'win32-st-an',
     'mozconfig_variant': 'clang',
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/taskcluster_sub_win32/clang_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_sub_win32/clang_debug.py
@@ -1,10 +1,9 @@
 config = {
-    'perfherder_extra_options': ['static-analysis'],
     'stage_platform': 'win32-st-an-debug',
     'debug_build': True,
     'env': {
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
     },
     'mozconfig_variant': 'clang-debug',
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/taskcluster_sub_win64/clang.py
+++ b/testing/mozharness/configs/builds/taskcluster_sub_win64/clang.py
@@ -1,6 +1,5 @@
 config = {
-    'perfherder_extra_options': ['static-analysis'],
     'stage_platform': 'win64-st-an',
     'mozconfig_variant': 'clang',
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/taskcluster_sub_win64/clang_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_sub_win64/clang_debug.py
@@ -1,10 +1,9 @@
 config = {
-    'perfherder_extra_options': ['static-analysis'],
     'stage_platform': 'win64-st-an-debug',
     'debug_build': True,
     'env': {
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
     },
     'mozconfig_variant': 'clang-debug',
     'artifact_flag_build_variant_in_try': None,
 }
--- a/testing/mozharness/configs/builds/taskcluster_sub_win64/searchfox_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_sub_win64/searchfox_debug.py
@@ -1,10 +1,9 @@
 config = {
-    'perfherder_extra_options': ['static-analysis'],
     'stage_platform': 'win64-st-an-debug',
     'debug_build': True,
     'env': {
         'XPCOM_DEBUG_BREAK': 'stack-and-abort',
         # Disable sccache because otherwise we won't index the files that
         # sccache optimizes away compilation for
         'SCCACHE_DISABLE': '1',
     },
--- a/testing/mozharness/mozharness/base/python.py
+++ b/testing/mozharness/mozharness/base/python.py
@@ -445,19 +445,16 @@ class PerfherderResourceOptionsMixin(Scr
                 self.info('instance_metadata.json not found; unable to '
                           'determine instance type')
             except Exception:
                 self.warning('error reading instance_metadata: %s' %
                              traceback.format_exc())
 
             opts.append('buildbot-%s' % instance)
 
-        # Allow configs to specify their own values.
-        opts.extend(self.config.get('perfherder_extra_options', []))
-
         return opts
 
 
 class ResourceMonitoringMixin(PerfherderResourceOptionsMixin):
     """Provides resource monitoring capabilities to scripts.
 
     When this class is in the inheritance chain, resource usage stats of the
     executing script will be recorded.
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -1731,21 +1731,16 @@ or run without that action (ie: --no-{ac
             })
 
         build_metrics = self._load_build_resources()
         if build_metrics:
             perfherder_data['suites'].append(build_metrics)
         perfherder_data['suites'].extend(self._load_sccache_stats())
 
         # Ensure all extra options for this configuration are present.
-        for opt in self.config.get('perfherder_extra_options', []):
-            for suite in perfherder_data['suites']:
-                if opt not in suite.get('extraOptions', []):
-                    suite.setdefault('extraOptions', []).append(opt)
-
         for opt in os.environ.get('PERFHERDER_EXTRA_OPTIONS', '').split():
             for suite in perfherder_data['suites']:
                 if opt not in suite.get('extraOptions', []):
                     suite.setdefault('extraOptions', []).append(opt)
 
         if self.query_is_nightly():
             for suite in perfherder_data['suites']:
                 suite.setdefault('extraOptions', []).insert(0, 'nightly')