Bug 1362148 - Always collect build metrics; r=ted draft
authorGregory Szorc <gps@mozilla.com>
Thu, 04 May 2017 12:28:52 -0700
changeset 589312 028a05d64984f59c08b5787e5380cdff69062ed0
parent 589311 b4719543ffdeba0a612f5067719140e05fb44899
child 631829 3724b4ced57e14c2c35fdef146bed06b83c0af2a
push id62318
push userbmo:gps@mozilla.com
push dateTue, 06 Jun 2017 01:11:27 +0000
reviewersted
bugs1362148
milestone55.0a1
Bug 1362148 - Always collect build metrics; r=ted Previously, mozharness defined a separate action to collect build metrics. This required the script and/or config to define that action. Metrics collection for CI is important. So it should be enabled by default. This commit changes the "build" action/method to always call the metrics collection function after successful build. References to the "generate-build-stats" action have been removed because it is redundant. A side-effect of this change is we may generate build metrics where we weren't before. This could lead to e.g. duplicate entries in some Perfherder series. Let's see what breaks ;) MozReview-Commit-ID: 42UQI5YQTMC
taskcluster/ci/artifact-build/kind.yml
taskcluster/ci/build/android.yml
taskcluster/ci/build/linux.yml
taskcluster/ci/build/macosx.yml
taskcluster/ci/static-analysis/kind.yml
taskcluster/ci/valgrind/kind.yml
testing/mozharness/configs/builds/releng_base_android_64_builds.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_64_builds.py
testing/mozharness/configs/builds/releng_sub_linux_configs/32_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_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_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_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_stylo.py
testing/mozharness/configs/builds/releng_sub_linux_configs/64_stylo_debug.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_cross_debug.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_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_debug.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_debug.py
testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.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
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/mozharness/scripts/fx_desktop_build.py
--- a/taskcluster/ci/artifact-build/kind.yml
+++ b/taskcluster/ci/artifact-build/kind.yml
@@ -21,17 +21,17 @@ jobs:
             symbol: AB
             tier: 2
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 36000
         run:
             using: mozharness
-            actions: [get-secrets build generate-build-stats]
+            actions: [get-secrets build]
             config:
                 - builds/releng_sub_linux_configs/64_artifact.py
                 - balrog/production.py
             script: "mozharness/scripts/fx_desktop_build.py"
             secrets: true
             tooltool-downloads: public
             need-xvfb: true
             keep-artifacts: false
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -6,17 +6,17 @@ android-api-15/debug:
     treeherder:
         platform: android-4-0-armv7-api15/debug
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-15-debug
         tooltool-downloads: internal
@@ -29,17 +29,17 @@ android-x86/opt:
     treeherder:
         platform: android-4-2-x86/opt
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86
         tooltool-downloads: internal
@@ -55,17 +55,17 @@ android-x86-nightly/opt:
     treeherder:
         platform: android-4-2-x86/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: x86
@@ -79,17 +79,17 @@ android-api-15/opt:
     treeherder:
         platform: android-4-0-armv7-api15/opt
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-15
         tooltool-downloads: internal
@@ -105,17 +105,17 @@ android-api-15-nightly/opt:
     treeherder:
         platform: android-4-0-armv7-api15/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-15
@@ -247,17 +247,17 @@ android-api-15-gradle/opt:
           - name: public/build/geckoview_example.apk
             path: /home/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/geckoview_example-withGeckoBinaries.apk
             type: file
           - name: public/build
             path: /home/worker/artifacts/
             type: directory
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: api-15-gradle
         tooltool-downloads: internal
@@ -270,17 +270,17 @@ android-aarch64/opt:
     treeherder:
         platform: android-5-0-aarch64/opt
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: aarch64
         tooltool-downloads: internal
@@ -296,17 +296,17 @@ android-aarch64-nightly/opt:
     treeherder:
         platform: android-5-0-aarch64/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         max-run-time: 7200
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats multi-l10n update]
+        actions: [get-secrets build multi-l10n update]
         config:
             - builds/releng_base_android_64_builds.py
             - disable_signing.py
             - platform_supports_post_upload_to_latest.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: aarch64
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -6,17 +6,17 @@ linux64/opt:
     treeherder:
         platform: linux64/opt
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
 
@@ -29,17 +29,17 @@ linux64/pgo:
         platform: linux64/pgo
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     coalesce-name: linux64-pgo
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         options: [enable-pgo]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -52,17 +52,17 @@ linux64/debug:
     treeherder:
         platform: linux64/debug
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: debug
         tooltool-downloads: public
         need-xvfb: true
@@ -78,17 +78,17 @@ linux64-devedition-nightly/opt:
     treeherder:
         platform: linux64-devedition/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - disable_signing.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -105,17 +105,17 @@ linux64-base-toolchains/opt:
         symbol: tc(Bb)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: browser/config/tooltool-manifests/linux64/base-toolchains.manifest
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
 
@@ -129,17 +129,17 @@ linux64-base-toolchains/debug:
         symbol: tc(Bb)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
         env:
             TOOLTOOL_MANIFEST: browser/config/tooltool-manifests/linux64/base-toolchains.manifest
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: debug
         tooltool-downloads: public
         need-xvfb: true
@@ -153,17 +153,17 @@ linux/opt:
         platform: linux32/opt
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     coalesce-name: opt_linux32
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_32_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
 
@@ -176,17 +176,17 @@ linux/debug:
         platform: linux32/debug
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     coalesce-name: dbg_linux32
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_32_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: debug
         tooltool-downloads: public
         need-xvfb: true
@@ -200,17 +200,17 @@ linux/pgo:
         platform: linux32/pgo
         symbol: tc(B)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     coalesce-name: linux32-pgo
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         options: [enable-pgo]
         config:
             - builds/releng_base_linux_32_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -226,17 +226,17 @@ linux-devedition-nightly/opt:
     treeherder:
         platform: linux32-devedition/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_32_builds.py
             - disable_signing.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -254,17 +254,17 @@ linux-nightly/opt:
     treeherder:
         platform: linux32/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_32_builds.py
             - disable_signing.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -278,17 +278,17 @@ linux64-asan/opt:
     treeherder:
         platform: linux64/asan
         symbol: tc(Bo)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: asan-tc
         tooltool-downloads: public
         need-xvfb: true
@@ -302,17 +302,17 @@ linux64-asan-fuzzing/opt:
     treeherder:
         platform: linux64/asan
         symbol: tc(Bof)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: fuzzing-asan-tc
         tooltool-downloads: public
         need-xvfb: true
@@ -325,17 +325,17 @@ linux64-asan/debug:
     treeherder:
         platform: linux64/asan
         symbol: tc(Bd)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: asan-tc-and-debug
         tooltool-downloads: public
         need-xvfb: true
@@ -351,17 +351,17 @@ linux64-nightly/opt:
     treeherder:
         platform: linux64/opt
         symbol: tc(N)
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - disable_signing.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
@@ -375,17 +375,17 @@ linux64-stylo/opt:
         platform: linux64-stylo/opt
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: stylo
         tooltool-downloads: public
         need-xvfb: true
@@ -400,17 +400,17 @@ linux64-stylo/debug:
         platform: linux64-stylo/debug
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: stylo-debug
         tooltool-downloads: public
         need-xvfb: true
@@ -425,17 +425,17 @@ linux64-noopt/debug:
         platform: linux64-noopt/debug
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: noopt-debug
         tooltool-downloads: public
         keep-artifacts: false
@@ -452,17 +452,17 @@ linux64-jsdcov/opt:
         symbol: tc(B)
         tier: 2
     run-on-projects: [ ]
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
 
@@ -477,17 +477,17 @@ linux64-ccov/opt:
         symbol: tc(B)
         tier: 2
     run-on-projects: [ ]
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: code-coverage
         tooltool-downloads: public
         need-xvfb: true
@@ -501,17 +501,17 @@ linux64-add-on-devel/opt:
         platform: linux64-add-on-devel/opt
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats check-test update]
+        actions: [get-secrets build check-test update]
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: add-on-devel
         tooltool-downloads: public
         need-xvfb: true
--- a/taskcluster/ci/build/macosx.yml
+++ b/taskcluster/ci/build/macosx.yml
@@ -7,17 +7,17 @@ macosx64/debug:
         platform: osx-10-7/debug
         symbol: tc(B)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats update]
+        actions: [get-secrets build update]
         config:
             - builds/releng_base_mac_64_cross_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: cross-debug
         tooltool-downloads: internal
 
@@ -28,17 +28,17 @@ macosx64/opt:
         job-name: macosx64-opt
     treeherder:
         platform: osx-10-7/opt
         symbol: tc(B)
         tier: 2
     worker-type: buildbot-bridge/buildbot-bridge
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats update]
+        actions: [get-secrets build update]
         config:
             - builds/releng_base_mac_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: internal
 
 macosx64-noopt/debug:
@@ -51,17 +51,17 @@ macosx64-noopt/debug:
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
         docker-image: {in-tree: desktop-build}
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats update]
+        actions: [get-secrets build update]
         config:
             - builds/releng_base_mac_64_cross_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: cross-noopt-debug
         tooltool-downloads: internal
         keep-artifacts: false
@@ -76,17 +76,17 @@ macosx64-add-on-devel/opt:
         platform: osx-10-7-add-on-devel/opt
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
         max-run-time: 36000
     run:
        using: mozharness
-       actions: [get-secrets build generate-build-stats update]
+       actions: [get-secrets build update]
        config:
             - builds/releng_base_mac_64_cross_builds.py
             - balrog/production.py
        script: "mozharness/scripts/fx_desktop_build.py"
        secrets: true
        custom-build-variant-cfg: add-on-devel
        tooltool-downloads: internal
     run-on-projects: [ 'mozilla-beta', 'mozilla-release', 'mozilla-esr45' ]
@@ -103,17 +103,17 @@ macosx64-nightly/opt:
         platform: osx-10-7/opt
         symbol: tc(N)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
     worker:
         max-run-time: 36000
     run:
         using: mozharness
-        actions: [get-secrets build generate-build-stats update]
+        actions: [get-secrets build update]
         config:
             - builds/releng_base_mac_64_cross_builds.py
             - disable_signing.py
             - taskcluster_nightly.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: internal
     run-on-projects: []
--- a/taskcluster/ci/static-analysis/kind.yml
+++ b/taskcluster/ci/static-analysis/kind.yml
@@ -25,17 +25,17 @@ jobs:
         treeherder:
             platform: osx-10-7/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 36000
         run:
             using: mozharness
-            actions: [build generate-build-stats update]
+            actions: [build update]
             config:
                 - builds/releng_base_mac_64_cross_builds.py
                 - balrog/production.py
             # enables static analysis.
             custom-build-variant-cfg: cross-debug-st-an
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: internal
             keep-artifacts: false
@@ -47,17 +47,17 @@ jobs:
         treeherder:
             platform: osx-10-7/opt
         worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 36000
         run:
             using: mozharness
-            actions: [build generate-build-stats update]
+            actions: [build update]
             config:
                 - builds/releng_base_mac_64_cross_builds.py
                 - balrog/production.py
             # enables static analysis.
             custom-build-variant-cfg: cross-opt-st-an
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: internal
             keep-artifacts: false
@@ -69,17 +69,17 @@ jobs:
         treeherder:
             platform: linux64/debug
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 36000
         run:
             using: mozharness
-            actions: [build generate-build-stats]
+            actions: [build]
             config:
                 - builds/releng_sub_linux_configs/64_stat_and_debug.py
                 - balrog/production.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
             keep-artifacts: false
 
     linux64-st-an/opt:
@@ -89,17 +89,17 @@ jobs:
         treeherder:
             platform: linux64/opt
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 36000
         run:
             using: mozharness
-            actions: [build generate-build-stats]
+            actions: [build]
             config:
                 - builds/releng_sub_linux_configs/64_stat_and_opt.py
                 - balrog/production.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
             keep-artifacts: false
 
     win32-st-an/debug:
--- a/taskcluster/ci/valgrind/kind.yml
+++ b/taskcluster/ci/valgrind/kind.yml
@@ -21,17 +21,17 @@ jobs:
             kind: build
             tier: 1
         worker-type: aws-provisioner-v1/gecko-{level}-b-linux
         worker:
             docker-image: {in-tree: desktop-build}
             max-run-time: 72000
         run:
             using: mozharness
-            actions: [get-secrets build generate-build-stats valgrind-test]
+            actions: [get-secrets build valgrind-test]
             custom-build-variant-cfg: valgrind
             config:
                 - builds/releng_base_linux_64_builds.py
                 - balrog/production.py
             script: "mozharness/scripts/fx_desktop_build.py"
             secrets: true
             tooltool-downloads: public
             need-xvfb: true
--- a/testing/mozharness/configs/builds/releng_base_android_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_android_64_builds.py
@@ -6,17 +6,16 @@ config = {
 
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'multi-l10n',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
--- a/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
@@ -10,17 +10,16 @@ config = {
 
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
--- a/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
@@ -9,17 +9,16 @@ config = {
     # releng_base_linux_64_builds.py
 
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
--- a/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -6,17 +6,16 @@ config = {
     ######## MACOSX GENERIC CONFIG KEYS/VAlUES
 
     'default_actions': [
         'clobber',
         'clone-tools',
         # 'setup-mock',
         'checkout-sources',
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
--- a/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
@@ -6,17 +6,16 @@ config = {
     ######## MACOSX CROSS GENERIC CONFIG KEYS/VAlUES
 
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'build',
-        'generate-build-stats',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "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
--- a/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
@@ -10,17 +10,16 @@ config = {
     # releng_base_windows_32_builds.py
 
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": [
--- a/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
@@ -10,17 +10,16 @@ config = {
     # releng_base_windows_64_builds.py
 
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": [
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'debug_build': True,
     'stage_platform': 'linux-debug',
     'enable_signing': False,
--- 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
@@ -2,17 +2,16 @@ import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
 #        'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-add-on-devel',
     'publish_nightly_en_US_routes': False,
     'build_type': '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
@@ -3,17 +3,16 @@ import os
 config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         '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
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-asan',
     'publish_nightly_en_US_routes': False,
     'build_type': '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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-asan-debug',
     'publish_nightly_en_US_routes': False,
     'build_type': 'asan-debug',
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-asan',
     'publish_nightly_en_US_routes': False,
     'build_type': '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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-asan-debug',
     'publish_nightly_en_US_routes': False,
     'build_type': 'asan-debug',
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-ccov',
     'platform_supports_post_upload_to_latest': False,
     'enable_signing': False,
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-debug',
     'debug_build': True,
     'enable_signing': False,
--- 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
@@ -5,17 +5,16 @@ MOZ_OBJDIR = 'obj-firefox'
 config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'sendchange',
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
     },
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     'vcs_share_base': '/builds/hg-shared',
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         # 'update',
     ],
     'stage_platform': 'linux64-fuzzing-asan',
     'publish_nightly_en_US_routes': False,
     'build_type': '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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-noopt-debug',
     'debug_build': True,
     'enable_signing': False,
--- 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
@@ -3,17 +3,16 @@ import os
 config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
     },
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'enable_signing': False,
--- 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
@@ -3,17 +3,16 @@ import os
 config = {
     # note: overridden by MOZHARNESS_ACTIONS in TaskCluster tasks
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
     ],
     "buildbot_json_path": "buildprops.json",
     'exes': {
         "buildbot": "/tools/buildbot/bin/buildbot",
     },
     'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
     # decides whether we want to use moz_sign_cmd in env
     'enable_signing': False,
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stylo.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stylo.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-stylo',
     'enable_signing': False,
     'enable_talos_sendchange': False,
--- a/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stylo_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stylo_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'linux64-stylo-debug',
     'debug_build': True,
     'enable_signing': False,
--- 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 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         #'setup-mock',
         'build',
-        # 'generate-build-stats',
         #'upload-files',
         #'sendchange',
         'check-test',
         'valgrind-test',
         #'update',
     ],
     'stage_platform': 'linux64-valgrind',
     'publish_nightly_en_US_routes': False,
--- 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
@@ -2,17 +2,16 @@ import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
 #        'setup-mock',
         'build',
-#        'generate-build-stats',
         'upload-files',
 #        'sendchange',
         'check-test',
 #        'update',
     ],
     'stage_platform': 'macosx64-add-on-devel',
     'publish_nightly_en_US_routes': False,
     'build_type': 'add-on-devel',
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'macosx64-debug',
     'debug_build': True,
     'objdir': 'obj-firefox',
     'enable_talos_sendchange': False,
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'macosx64-noopt-debug',
     'debug_build': True,
     'objdir': 'obj-firefox',
     'enable_talos_sendchange': False,
--- a/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock',
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'macosx64-debug',
     'debug_build': True,
     'objdir': 'obj-firefox',
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock',
         'build',
-        # 'generate-build-stats',
         'upload-files',
         'sendchange',
         'update',  # decided by query_is_nightly()
     ],
     'debug_build': True,
     'stage_platform': 'macosx64-st-an-debug',
     'build_type': 'st-an-debug',
     'tooltool_manifest_src': "browser/config/tooltool-manifests/macosx64/\
--- 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
@@ -2,17 +2,16 @@ import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-#        'generate-build-stats',
         'upload-files',
 #        'sendchange',
         'check-test',
 #        'update',
     ],
     'stage_platform': 'win32-add-on-devel',
     'build_type': 'add-on-devel',
     'enable_talos_sendchange': False,
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'win32-debug',
     'debug_build': True,
     'enable_talos_sendchange': False,
--- 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
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-        # 'generate-build-stats',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'win32-st-an-debug',
     'debug_build': True,
     'enable_signing': False,
     'enable_talos_sendchange': False,
     'enable_unittest_sendchange': False,
     'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/\
--- 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
@@ -2,17 +2,16 @@ import os
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-#        'generate-build-stats',
         'upload-files',
 #        'sendchange',
         'check-test',
 #        'update',
     ],
     'stage_platform': 'win64-add-on-devel',
     'build_type': 'add-on-devel',
     'enable_talos_sendchange': False,
--- a/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
@@ -4,17 +4,16 @@ MOZ_OBJDIR = 'obj-firefox'
 
 config = {
     'default_actions': [
         'clobber',
         'clone-tools',
         'checkout-sources',
         # 'setup-mock', windows do not use mock
         'build',
-        'generate-build-stats',
         'upload-files',
         'sendchange',
         'check-test',
         'update',  # decided by query_is_nightly()
     ],
     'stage_platform': 'win64-debug',
     'debug_build': True,
     'enable_talos_sendchange': False,
--- a/testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_win32_noopt_debug.py
@@ -16,17 +16,16 @@ config = {
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
     # - taskcluster_firefox_win32_noopt_debug
     # - taskcluster_firefox_win64_noopt_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_addondevel.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_addondevel.py
@@ -14,17 +14,16 @@ config = {
     # - taskcluster_firefox_win32_clang
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_debug.py
@@ -14,17 +14,16 @@ config = {
     # - taskcluster_firefox_win32_clang
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_32_opt.py
@@ -14,17 +14,16 @@ config = {
     # - taskcluster_firefox_win32_clang
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_addondevel.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_addondevel.py
@@ -15,17 +15,16 @@ config = {
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
     # - taskcluster_firefox_win64_addonsdevel
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_debug.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_debug.py
@@ -14,17 +14,16 @@ config = {
     # - taskcluster_firefox_win32_clang
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_opt.py
+++ b/testing/mozharness/configs/builds/taskcluster_firefox_windows_64_opt.py
@@ -14,17 +14,16 @@ config = {
     # - taskcluster_firefox_win32_clang
     # - taskcluster_firefox_win32_clang_debug
     # - taskcluster_firefox_win64_clang
     # - taskcluster_firefox_win64_clang_debug
 
     'default_actions': [
         'clone-tools',
         'build',
-        'generate-build-stats',
         'check-test',
     ],
     'exes': {
         'virtualenv': [
             sys.executable,
             os.path.join(
                 os.getcwd(), 'build', 'src', 'python', 'virtualenv', 'virtualenv.py'
             )
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -1640,16 +1640,17 @@ or run without that action (ie: --no-{ac
             self.return_code = self.worst_level(
                 EXIT_STATUS_DICT[TBPL_FAILURE],  self.return_code,
                 AUTOMATION_EXIT_CODES[::-1]
             )
             self.fatal("'mach build' did not run successfully. Please check "
                        "log for errors.")
 
         self.generate_build_props(console_output=True, halt_on_failure=True)
+        self._generate_build_stats()
 
     def multi_l10n(self):
         if not self.query_is_nightly():
             self.info("Not a nightly build, skipping multi l10n.")
             return
         self._initialize_taskcluster()
 
         dirs = self.query_abs_dirs()
@@ -1997,23 +1998,25 @@ or run without that action (ie: --no-{ac
         else:
             yield {
                 "name": "installer size",
                 "value": installer_size,
                 "alertThreshold": 1.0,
                 "subtests": size_measurements
             }
 
-    def generate_build_stats(self):
+    def _generate_build_stats(self):
         """grab build stats following a compile.
 
         This action handles all statistics from a build: 'count_ctors'
         and then posts to graph server the results.
         We only post to graph server for non nightly build
         """
+        self.info('Collecting build metrics')
+
         if self.config.get('forced_artifact_build'):
             self.info('Skipping due to forced artifact build.')
             return
 
         c = self.config
 
         if c.get('enable_count_ctors'):
             self.info("counting ctors...")
--- a/testing/mozharness/scripts/fx_desktop_build.py
+++ b/testing/mozharness/scripts/fx_desktop_build.py
@@ -34,17 +34,16 @@ class FxDesktopBuild(BuildScript, TryToo
             'config_options': BUILD_BASE_CONFIG_OPTIONS + copy.deepcopy(try_config_options),
             'all_actions': [
                 'get-secrets',
                 'clobber',
                 'clone-tools',
                 'checkout-sources',
                 'setup-mock',
                 'build',
-                'generate-build-stats',
                 'upload-files',  # upload from BB to TC
                 'sendchange',
                 'check-test',
                 'valgrind-test',
                 'package-source',
                 'generate-source-signing-manifest',
                 'multi-l10n',
                 'update',