Bug 1427312 - Add mechanism to create tasks to compare Firefox builds. r=dustin

There are e.g. some build infrastructure changes that we want to have a
controlled impact on the Firefox builds we produce. We have, in multiple
occasions, gone through manual work to compare Firefox builds, most of
the time using the diffoscope tool (https://diffoscope.org/).

This change introduces a new task kind that takes two Firefox builds as
input, either by name (reference to a build from the current task graph)
or by index (reference to a build from a previous push), and compares
them.

In order to get a Firefox build by index, we rely on dummy tasks with
an optimization we expect to always hit, so we add the necessary bits
to ensure those dummy tasks can go through up to the optimization phase
and be optimized out there.
This commit is contained in:
Mike Hommey
2017-12-28 12:14:34 +09:00
parent fd9a1bdc44
commit ae3d424d62
11 changed files with 350 additions and 1 deletions

View File

@@ -556,6 +556,10 @@ task_description_schema = Schema({
# release automation on branches where the task just doesn't make sense
Extra: object,
}, {
Required('implementation'): 'always-optimized',
Extra: object,
}, {
Required('implementation'): 'push-apk',
@@ -1071,6 +1075,11 @@ def build_invalid_payload(config, task, task_def):
task_def['payload'] = 'invalid task - should never be created'
@payload_builder('always-optimized')
def build_always_optimized_payload(config, task, task_def):
task_def['payload'] = {}
@payload_builder('native-engine')
def build_macosx_engine_payload(config, task, task_def):
worker = task['worker']