1# This Source Code Form is subject to the terms of the Mozilla Public 2# License, v. 2.0. If a copy of the MPL was not distributed with this file, 3# You can obtain one at http://mozilla.org/MPL/2.0/. 4 5""" 6Constants for SCHEDULES configuration in moz.build files and for 7skip-unless-schedules optimizations in task-graph generation. 8""" 9 10from __future__ import absolute_import, unicode_literals, print_function 11 12# TODO: ideally these lists could be specified in moz.build itself 13 14# Inclusive components are those which are scheduled when certain files are 15# changed, but do not run by default. These are generally added to 16# `SCHEDULES.inclusive` using `+=`, but can also be used as exclusive 17# components for files which *only* affect the named component. 18INCLUSIVE_COMPONENTS = [ 19 'docs', 20 'py-lint', 21 'js-lint', 22 'yaml-lint', 23 # inclusive test suites -- these *only* run when certain files have changed 24 'jittest', 25 'test-verify', 26 'test-verify-wpt', 27 'jsreftest', 28] 29INCLUSIVE_COMPONENTS = sorted(INCLUSIVE_COMPONENTS) 30 31# Exclusive components are those which are scheduled by default, but for which 32# some files *only* affect that component. For example, most files affect all 33# platforms, but platform-specific files exclusively affect a single platform. 34# These components are assigned to `SCHEDULES.exclusive` with `=`. 35EXCLUSIVE_COMPONENTS = [ 36 # os families 37 'android', 38 'linux', 39 'macosx', 40 'windows', 41 # test suites 42 'awsy', 43 'cppunittest', 44 'firefox-ui', 45 'geckoview', 46 'gtest', 47 'marionette', 48 'mochitest', 49 'reftest', 50 'robocop', 51 'talos', 52 'telemetry-tests-client', 53 'xpcshell', 54 'xpcshell-coverage', 55 'web-platform-tests', 56 'web-platform-tests-reftests', 57 'web-platform-tests-wdspec', 58 # Thunderbird test suites 59 'mozmill', 60] 61EXCLUSIVE_COMPONENTS = sorted(EXCLUSIVE_COMPONENTS) 62ALL_COMPONENTS = INCLUSIVE_COMPONENTS + EXCLUSIVE_COMPONENTS 63