Bug 1491907 - Get comm/ version from comm/mail/*version.txt r=dustin

The release-update-verify-config task requires that the versions passed
to it match up with what's been released. The version of Thunderbird
does not necessarily match the Gecko version it's based on.

Depends on D6509

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Rob Lemley 2018-09-29 20:53:10 +00:00
parent 77d113c0ad
commit f9a960ddaf
5 changed files with 25 additions and 10 deletions

View File

@ -1,5 +1,6 @@
trust-domain: gecko
project-repo-param-prefix: ''
product-dir: 'browser'
treeherder:
group-names:
'cram': 'Cram tests'

View File

@ -8,9 +8,6 @@ import os
GECKO = os.path.realpath(os.path.join(__file__, '..', '..', '..'))
APP_VERSION_PATH = os.path.join(GECKO, "browser", "config", "version.txt")
VERSION_PATH = os.path.join(GECKO, "browser", "config", "version_display.txt")
# Maximum number of dependencies a single task can have
# https://docs.taskcluster.net/reference/platform/taskcluster-queue/references/api#createTask
# specifies 100, but we also optionally add the decision task id as a dep in

View File

@ -24,12 +24,15 @@ graph_config_schema = Schema({
# (See http://firefox-source-docs.mozilla.org/taskcluster/taskcluster/parameters.html#push-information # noqa
# and http://firefox-source-docs.mozilla.org/taskcluster/taskcluster/parameters.html#comm-push-information) # noqa
Required('project-repo-param-prefix'): basestring,
# This specifies the top level directory of the application being built.
# ie. "browser/" for Firefox, "comm/mail/" for Thunderbird.
Required('product-dir'): basestring,
Required('treeherder'): {
# Mapping of treeherder group symbols to descriptive names
Required('group-names'): {basestring: basestring}
},
Required('index'): {
Required('products'): [basestring],
Required('products'): [basestring]
},
Required('try'): {
# We have a few platforms for which we want to do some "extra" builds, or at

View File

@ -20,6 +20,7 @@ from .try_option_syntax import parse_message
from .actions import render_actions_json
from taskgraph.util.partials import populate_release_history
from taskgraph.util.yaml import load_yaml
from taskgraph.config import load_graph_config
logger = logging.getLogger(__name__)
@ -186,6 +187,11 @@ def get_decision_parameters(options):
This also applies per-project parameters, based on the given project.
"""
# --root is not passed to mach when building Firefox
root = options.get('root') or 'taskcluster/ci'
_config = load_graph_config(root)
product_dir = _config['product-dir']
parameters = {n: options[n] for n in [
'base_repository',
'head_repository',
@ -218,8 +224,8 @@ def get_decision_parameters(options):
parameters['existing_tasks'] = {}
parameters['do_not_optimize'] = []
parameters['build_number'] = 1
parameters['version'] = get_version()
parameters['app_version'] = get_app_version()
parameters['version'] = get_version(product_dir)
parameters['app_version'] = get_app_version(product_dir)
parameters['next_version'] = None
parameters['release_type'] = 'nightly'
parameters['release_eta'] = ''

View File

@ -6,7 +6,7 @@
from __future__ import absolute_import, print_function, unicode_literals
import functools
import os.path
import json
import time
import yaml
@ -15,7 +15,7 @@ from datetime import datetime
from mozbuild.util import ReadOnlyDict, memoize
from mozversioncontrol import get_repository_object
from . import APP_VERSION_PATH, GECKO, VERSION_PATH
from . import GECKO
from .util.attributes import RELEASE_PROJECTS
@ -34,8 +34,16 @@ def get_contents(path):
return contents
get_version = functools.partial(get_contents, VERSION_PATH)
get_app_version = functools.partial(get_contents, APP_VERSION_PATH)
def get_version(product_dir='browser'):
version_path = os.path.join(GECKO, product_dir, 'config',
'version_display.txt')
return get_contents(version_path)
def get_app_version(product_dir='browser'):
app_version_path = os.path.join(GECKO, product_dir, 'config',
'version.txt')
return get_contents(app_version_path)
# Please keep this list sorted and in sync with taskcluster/docs/parameters.rst