Bug 1466537: Disable full crashsymbols by branch r=ted

Differential Revision: https://phabricator.services.mozilla.com/D1558

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Chris AtLee 2018-07-30 20:23:14 +00:00
parent 42df5c9dde
commit 38cced543a
7 changed files with 79 additions and 1 deletions

View File

@ -278,7 +278,13 @@ symbolsarchive: prepsymbolsarchive
$(abspath $(DIST)/crashreporter-symbols))
ifdef MOZ_CRASHREPORTER
# Set MOZ_DISABLE_FULL_SYMBOLS to disable generation and upload of the full
# crashreporter symbols archives
ifdef MOZ_DISABLE_FULL_SYMBOLS
buildsymbols: symbolsarchive
else
buildsymbols: symbolsfullarchive symbolsarchive
endif # MOZ_DISABLE_FULL_SYMBOLS
else
buildsymbols:
endif

View File

@ -3,6 +3,8 @@ linux64/opt:
index:
product: firefox
job-name: linux64-opt
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux64/opt
symbol: B
@ -91,6 +93,8 @@ linux64/pgo:
index:
product: firefox
job-name: linux64-pgo
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux64/pgo
symbol: B
@ -151,6 +155,8 @@ linux64/debug:
index:
product: firefox
job-name: linux64-debug
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux64/debug
symbol: B
@ -207,6 +213,7 @@ linux64-devedition-nightly/opt:
description: "Linux64 devedition Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: devedition
index:
@ -303,6 +310,8 @@ linux/opt:
index:
product: firefox
job-name: linux-opt
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux32/opt
symbol: B
@ -332,6 +341,8 @@ linux/debug:
index:
product: firefox
job-name: linux-debug
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux32/debug
symbol: B
@ -362,6 +373,8 @@ linux/pgo:
index:
product: firefox
job-name: linux-pgo
attributes:
enable-full-crashsymbols: true
treeherder:
platform: linux32/pgo
symbol: B
@ -459,6 +472,7 @@ linux-devedition-nightly/opt:
description: "Linux32 devedition Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: devedition
index:
@ -496,6 +510,7 @@ linux-nightly/opt:
description: "Linux32 Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: firefox
index:
@ -527,7 +542,6 @@ linux-nightly/opt:
- linux64-rust-size
- linux64-sccache
linux64-asan/opt:
description: "Linux64 Opt ASAN"
index:
@ -756,6 +770,7 @@ linux64-nightly/opt:
description: "Linux64 Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: firefox
index:

View File

@ -3,6 +3,8 @@ macosx64/debug:
index:
product: firefox
job-name: macosx64-debug
attributes:
enable-full-crashsymbols: true
treeherder:
platform: osx-cross/debug
symbol: B
@ -37,6 +39,8 @@ macosx64/opt:
index:
product: firefox
job-name: macosx64-opt
attributes:
enable-full-crashsymbols: true
treeherder:
platform: osx-cross/opt
symbol: B
@ -139,6 +143,7 @@ macosx64-devedition-nightly/opt:
description: "MacOS X Dev Edition x64 Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: devedition
index:
@ -251,6 +256,7 @@ macosx64-nightly/opt:
description: "MacOS X x64 Cross-compile Nightly"
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: firefox
index:

View File

@ -3,6 +3,8 @@ win32/debug:
index:
product: firefox
job-name: win32-debug
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-32/debug
symbol: B
@ -32,6 +34,8 @@ win32/opt:
index:
product: firefox
job-name: win32-opt
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-32/opt
symbol: B
@ -99,6 +103,8 @@ win32/pgo:
index:
product: firefox
job-name: win32-pgo
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-32/pgo
symbol: B
@ -128,6 +134,8 @@ win64/debug:
index:
product: firefox
job-name: win64-debug
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-64/debug
symbol: B
@ -186,6 +194,8 @@ win64/opt:
index:
product: firefox
job-name: win64-opt
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-64/opt
symbol: B
@ -279,6 +289,7 @@ win32-nightly/opt:
type: nightly
attributes:
nightly: true
enable-full-crashsymbols: true
stub-installer:
by-project:
default: false
@ -322,6 +333,7 @@ win64-nightly/opt:
type: nightly
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: firefox
treeherder:
@ -355,6 +367,8 @@ win64/pgo:
index:
product: firefox
job-name: win64-pgo
attributes:
enable-full-crashsymbols: true
treeherder:
platform: windows2012-64/pgo
symbol: B
@ -693,6 +707,7 @@ win32-devedition-nightly/opt:
type: nightly
attributes:
nightly: true
enable-full-crashsymbols: true
stub-installer:
by-project:
default: false
@ -737,6 +752,7 @@ win64-devedition-nightly/opt:
type: nightly
attributes:
nightly: true
enable-full-crashsymbols: true
shipping-phase: build
shipping-product: devedition
treeherder:

View File

@ -225,3 +225,10 @@ Most taskcluster artifacts are public, so we've hardcoded ``public/build`` in a
lot of places. To support private artifacts, we've moved this to the
``artifact_prefix`` attribute. It will default to ``public/build`` but will be
overrideable per-task.
enable-full-crashsymbols
========================
In automation, full crashsymbol package generation is normally disabled. For
build kinds where the full crashsymbols should be enabled, set this attribute
to True. The full symbol packages will then be generated and uploaded on
release branches and on try.

View File

@ -9,9 +9,13 @@ kind.
from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.attributes import RELEASE_PROJECTS
from taskgraph.util.schema import resolve_keyed_by
from taskgraph.util.workertypes import worker_type_implementation
import logging
logger = logging.getLogger(__name__)
transforms = TransformSequence()
@ -58,3 +62,19 @@ def set_env(config, jobs):
if env:
job['worker']['env'].update(dict(x.split('=') for x in env))
yield job
@transforms.add
def enable_full_crashsymbols(config, jobs):
"""Enable full crashsymbols on jobs with
'enable-full-crashsymbols' set to True and on release branches, or
on try"""
branches = RELEASE_PROJECTS | {'try', }
for job in jobs:
enable_full_crashsymbols = job['attributes'].get('enable-full-crashsymbols')
if enable_full_crashsymbols and config.params['project'] in branches:
logger.debug("Enabling full symbol generation for %s", job['name'])
else:
logger.debug("Disabling full symbol generation for %s", job['name'])
job['worker']['env']['MOZ_DISABLE_FULL_SYMBOLS'] = '1'
yield job

View File

@ -10,6 +10,8 @@ from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
import logging
logger = logging.getLogger(__name__)
transforms = TransformSequence()
@ -21,6 +23,12 @@ def fill_template(config, tasks):
# Fill out the dynamic fields in the task description
task['label'] = dep.label + '-upload-symbols'
# Skip tasks where we don't have the full crashsymbols enabled
if not dep.attributes.get('enable-full-crashsymbols'):
logger.debug("Skipping upload symbols task for %s", task['label'])
continue
task['dependencies'] = {'build': dep.label}
task['worker']['env']['GECKO_HEAD_REPOSITORY'] = config.params['head_repository']
task['worker']['env']['GECKO_HEAD_REV'] = config.params['head_rev']