Bug 1428915 - Remove job name whitelist. r?mshal draft
authorMike Hommey <mh+mozilla@glandium.org>
Tue, 09 Jan 2018 08:27:32 +0900
changeset 717459 9ffc41c86c42057a8666c65c5f1eb20b47d42c01
parent 717431 d1963faa7bb6574d32793f4d2b4c12df807c72d0
child 717506 e2a674147e05e173585074a46c6a3672505ca2b6
push id94683
push userbmo:mh+mozilla@glandium.org
push dateTue, 09 Jan 2018 00:38:51 +0000
reviewersmshal
bugs1428915
milestone59.0a1
Bug 1428915 - Remove job name whitelist. r?mshal This was useful when we still had buildbot-based build jobs, but all it achieves nowadays is add friction when adding new build jobs on taskcluster.
taskcluster/ci/config.yml
taskcluster/taskgraph/config.py
taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -60,151 +60,16 @@ treeherder:
 index:
     products:
         - 'firefox'
         - 'fennec'
         - 'mobile'
         - 'static-analysis'
         - 'devedition'
         - 'source'
-    job-names:
-        # This list contains a whitelist of gecko.v2 index route job names.  The intent
-        # of this whitelist is to raise an alarm when new jobs are added.  If those jobs
-        # already run in Buildbot, then it's important that the generated index routes
-        # match (and that only one of Buildbot and TaskCluster be tier-1 at any time).
-        # If the jobs are new and never ran in Buildbot, then their job name can be added
-        # here without any further fuss.
-        #
-        # Once all jobs have been ported from Buildbot, this list can be removed.
-        - 'android-aarch64-opt'
-        - 'android-api-16-debug'
-        - 'android-api-16-gradle-opt'
-        - 'android-api-16-old-id-opt'
-        - 'android-api-16-opt'
-        - 'android-checkstyle'
-        - 'android-dependencies'
-        - 'android-findbugs'
-        - 'android-lint'
-        - 'android-test'
-        - 'android-x86-old-id-opt'
-        - 'android-x86-opt'
-        - 'browser-haz-debug'
-        - 'linux-debug'
-        - 'linux-devedition'
-        - 'linux-devedition-opt'
-        - 'linux-devedition-nightly-repackage'
-        - 'linux-devedition-nightly-repackage-signing'
-        - 'linux-nightly-repackage'
-        - 'linux-nightly-repackage-signing'
-        - 'linux-opt'
-        - 'linux-pgo'
-        - 'linux-rusttests-opt'
-        - 'linux-rusttests-debug'
-        - 'linux64-add-on-devel'
-        - 'linux64-artifact-opt'
-        - 'linux64-asan-debug'
-        - 'linux64-asan-opt'
-        - 'linux64-asan-reporter-opt'
-        - 'linux64-base-toolchains-debug'
-        - 'linux64-base-toolchains-opt'
-        - 'linux64-fuzzing-asan-opt'
-        - 'linux64-fuzzing-debug'
-        - 'linux64-ccov-opt'
-        - 'linux64-clang-tidy'
-        - 'linux64-debug'
-        - 'linux64-devedition'
-        - 'linux64-devedition-opt'
-        - 'linux64-devedition-nightly-repackage'
-        - 'linux64-devedition-nightly-repackage-signing'
-        - 'linux64-jsdcov-opt'
-        - 'linux64-nightly-repackage'
-        - 'linux64-nightly-repackage-signing'
-        - 'linux64-noopt-debug'
-        - 'linux64-opt'
-        - 'linux64-pgo'
-        - 'linux64-rusttests-opt'
-        - 'linux64-rusttests-debug'
-        - 'linux64-searchfox-debug'
-        - 'linux64-st-an-debug'
-        - 'linux64-st-an-opt'
-        - 'linux64-valgrind-opt'
-        - 'linux64-dmd-opt'
-        - 'linux64-source-opt'
-        - 'linux64-devedition-source-opt'
-        - 'linux64-fennec-source-opt'
-        - 'macosx64-add-on-devel'
-        - 'macosx64-clang-tidy'
-        - 'macosx64-debug'
-        - 'macosx64-devedition-opt'
-        - 'macosx64-nightly-repackage'
-        - 'macosx64-nightly-repackage-signing'
-        - 'macosx64-noopt-debug'
-        - 'macosx64-opt'
-        - 'macosx64-devedition-nightly-repackage'
-        - 'macosx64-devedition-nightly-repackage-signing'
-        - 'macosx64-st-an-debug'
-        - 'macosx64-st-an-opt'
-        - 'macosx64-searchfox-debug'
-        - 'macosx64-dmd-opt'
-        - 'shell-haz-debug'
-        - 'sm-arm-sim-linux32-debug'
-        - 'sm-arm64-sim-linux64-debug'
-        - 'sm-asan-linux64-opt'
-        - 'sm-compacting-linux64-debug'
-        - 'sm-compacting-win32-debug'
-        - 'sm-fuzzing-linux64'
-        - 'sm-mozjs-sys-linux64-debug'
-        - 'sm-msan-linux64-opt'
-        - 'sm-nojit-linux64-opt'
-        - 'sm-nonunified-linux64-debug'
-        - 'sm-package-linux64-opt'
-        - 'sm-plain-linux64-opt'
-        - 'sm-plain-win32-opt'
-        - 'sm-plain-linux64-debug'
-        - 'sm-plain-win32-debug'
-        - 'sm-rootanalysis-linux64-debug'
-        - 'sm-rust-bindings-linux64-debug'
-        - 'sm-tsan-linux64-opt'
-        - 'source-bugzilla-info'
-        - 'win32-add-on-devel'
-        - 'win32-clang-tidy'
-        - 'win32-debug'
-        - 'win32-devedition-nightly-repackage'
-        - 'win32-devedition-nightly-repackage-signing'
-        - 'win32-devedition-opt'
-        - 'win32-nightly-repackage'
-        - 'win32-nightly-repackage-signing'
-        - 'win32-noopt-debug'
-        - 'win32-opt'
-        - 'win32-pgo'
-        - 'win32-rusttests-opt'
-        - 'win32-searchfox-debug'
-        - 'win32-st-an-debug'
-        - 'win32-st-an-opt'
-        - 'win32-dmd-opt'
-        - 'win64-ccov-debug'
-        - 'win64-add-on-devel'
-        - 'win64-clang-tidy'
-        - 'win64-debug'
-        - 'win64-devedition-opt'
-        - 'win64-devedition-nightly-repackage'
-        - 'win64-devedition-nightly-repackage-signing'
-        - 'win64-nightly-repackage'
-        - 'win64-nightly-repackage-signing'
-        - 'win64-noopt-debug'
-        - 'win64-opt'
-        - 'win64-pgo'
-        - 'win64-rusttests-opt'
-        - 'win64-st-an-debug'
-        - 'win64-st-an-opt'
-        - 'win64-asan-debug'
-        - 'win64-asan-opt'
-        - 'win64-dmd-opt'
-        - 'win32-mingw32-debug'
-
 
 try:
     # We have a few platforms for which we want to do some "extra" builds, or at
     # least build-ish things.  Sort of.  Anyway, these other things are implemented
     # as different "platforms".  These do *not* automatically ride along with "-p
     # all"
     ridealong-builds:
         'android-api-16':
--- a/taskcluster/taskgraph/config.py
+++ b/taskcluster/taskgraph/config.py
@@ -1,30 +1,28 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from .util.schema import validate_schema, Schema
-from voluptuous import Required, Optional
+from voluptuous import Required
 
 graph_config_schema = Schema({
     # The trust-domain for this graph.
     # (See https://firefox-source-docs.mozilla.org/taskcluster/taskcluster/taskgraph.html#taskgraph-trust-domain)  # noqa
     Required('trust-domain'): basestring,
     Required('treeherder'): {
         # Mapping of treeherder group symbols to descriptive names
         Required('group-names'): {basestring: basestring}
     },
     Required('index'): {
 
         Required('products'): [basestring],
-        # A whitelist of gecko.v2 index route job names.
-        Optional('job-names'): [basestring],
     },
     Required('try'): {
         # We have a few platforms for which we want to do some "extra" builds, or at
         # least build-ish things.  Sort of.  Anyway, these other things are implemented
         # as different "platforms".  These do *not* automatically ride along with "-p
         # all"
         Required('ridealong-builds', default={}): {basestring: [basestring]},
     },
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -711,35 +711,23 @@ def superseder_url(config, task):
     size = task['coalesce']['size']
     return SUPERSEDER_URL.format(
         age=age,
         size=size,
         key=key
     )
 
 
-JOB_NAME_WHITELIST_ERROR = """\
-The gecko-v2 job name {job_name} is not in the whitelist in `taskcluster/ci/config.yml`.
-If this job runs on Buildbot, please ensure that the job names match between
-Buildbot and TaskCluster, then add the job name to the whitelist.  If this is a
-new job, there is nothing to check -- just add the job to the whitelist.
-"""
-
 UNSUPPORTED_PRODUCT_ERROR = """\
 The gecko-v2 product {product} is not in the list of configured products in
 `taskcluster/ci/config.yml'.
 """
 
 
 def verify_index(config, index):
-    if 'job-names' in config.graph_config['index']:
-        job_name = index['job-name']
-        if job_name not in config.graph_config['index']['job-names']:
-            raise Exception(JOB_NAME_WHITELIST_ERROR.format(job_name=job_name))
-
     product = index['product']
     if product not in config.graph_config['index']['products']:
         raise Exception(UNSUPPORTED_PRODUCT_ERROR.format(product=product))
 
 
 @payload_builder('docker-worker')
 def build_docker_worker_payload(config, task, task_def):
     worker = task['worker']