qyearsley | 61be68b | 2015-07-06 12:57:02 -0700 | [diff] [blame] | 1 | # Copyright 2015 The Chromium Authors. All rights reserved. |
sullivan | 3283c9a | 2015-05-28 12:41:09 -0700 | [diff] [blame] | 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | """Top-level presubmit script for catapult. |
| 6 | |
| 7 | See https://www.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| 8 | for more details about the presubmit API built into depot_tools. |
| 9 | """ |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 10 | import re |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 11 | import sys |
sullivan | 3283c9a | 2015-05-28 12:41:09 -0700 | [diff] [blame] | 12 | |
sullivan | 7bb77ca | 2015-08-07 10:44:03 -0700 | [diff] [blame] | 13 | _EXCLUDED_PATHS = ( |
dtu | a9d94bc | 2015-09-15 13:54:19 -0700 | [diff] [blame] | 14 | r'(.*[\\/])?\.git[\\/].*', |
sullivan | 7bb77ca | 2015-08-07 10:44:03 -0700 | [diff] [blame] | 15 | r'.+\.png$', |
| 16 | r'.+\.svg$', |
| 17 | r'.+\.skp$', |
| 18 | r'.+\.gypi$', |
| 19 | r'.+\.gyp$', |
| 20 | r'.+\.gn$', |
| 21 | r'.*\.gitignore$', |
| 22 | r'.*codereview.settings$', |
| 23 | r'.*AUTHOR$', |
| 24 | r'^CONTRIBUTORS\.md$', |
| 25 | r'.*LICENSE$', |
| 26 | r'.*OWNERS$', |
| 27 | r'.*README\.md$', |
dtu | a9d94bc | 2015-09-15 13:54:19 -0700 | [diff] [blame] | 28 | r'^dashboard[\\/]dashboard[\\/]templates[\\/].*', |
| 29 | r'^experimental[\\/]heatmap[\\/].*', |
| 30 | r'^perf_insights[\\/]test_data[\\/].*', |
| 31 | r'^perf_insights[\\/]third_party[\\/].*', |
| 32 | r'^third_party[\\/].*', |
| 33 | r'^tracing[\\/]\.allow-devtools-save$', |
| 34 | r'^tracing[\\/]bower\.json$', |
| 35 | r'^tracing[\\/]\.bowerrc$', |
| 36 | r'^tracing[\\/]tracing_examples[\\/]string_convert\.js$', |
| 37 | r'^tracing[\\/]test_data[\\/].*', |
| 38 | r'^tracing[\\/]third_party[\\/].*', |
qyearsley | 806cebd | 2016-02-08 14:13:44 -0800 | [diff] [blame] | 39 | r'^telemetry[\\/]support[\\/]html_output[\\/]results-template.html', |
sullivan | 7bb77ca | 2015-08-07 10:44:03 -0700 | [diff] [blame] | 40 | ) |
| 41 | |
sullivan | 3283c9a | 2015-05-28 12:41:09 -0700 | [diff] [blame] | 42 | |
dtu | b38aea6 | 2016-01-22 09:10:59 -0800 | [diff] [blame] | 43 | def GetPreferredTryMasters(project, change): |
sullivan | 3283c9a | 2015-05-28 12:41:09 -0700 | [diff] [blame] | 44 | return { |
qyearsley | d00b6d1 | 2015-07-06 12:13:38 -0700 | [diff] [blame] | 45 | 'tryserver.client.catapult': { |
| 46 | 'Catapult Linux Tryserver': {'defaulttests'}, |
| 47 | 'Catapult Mac Tryserver': {'defaulttests'}, |
| 48 | 'Catapult Windows Tryserver': {'defaulttests'}, |
| 49 | } |
sullivan | c11564b | 2015-06-25 10:37:29 -0700 | [diff] [blame] | 50 | } |
| 51 | |
| 52 | |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 53 | def CheckChangeLogBug(input_api, output_api): |
sullivan | 8ef80f5 | 2015-08-12 10:26:57 -0700 | [diff] [blame] | 54 | if input_api.change.BUG is None or re.match( |
eakuefner | a9075e1e | 2016-02-11 11:16:02 -0800 | [diff] [blame] | 55 | r'((chromium\:|catapult\:\#)\d+)(,\s*(chromium\:|catapult\:\#)\d+)*$', |
| 56 | input_api.change.BUG): |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 57 | return [] |
sullivan | 8ef80f5 | 2015-08-12 10:26:57 -0700 | [diff] [blame] | 58 | return [output_api.PresubmitError( |
eakuefner | a9075e1e | 2016-02-11 11:16:02 -0800 | [diff] [blame] | 59 | ('Invalid bug "%s". Chromium issues should be prefixed with "chromium:" ' |
| 60 | 'and Catapult issues should be prefixed with "catapult:#".' % |
| 61 | input_api.change.BUG))] |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 62 | |
| 63 | |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 64 | def CheckChange(input_api, output_api): |
sullivan | 1e38874 | 2015-08-03 13:45:35 -0700 | [diff] [blame] | 65 | results = [] |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 66 | try: |
| 67 | sys.path += [input_api.PresubmitLocalPath()] |
sullivan | 04bf4b5 | 2015-08-21 13:08:38 -0700 | [diff] [blame] | 68 | from catapult_build import js_checks |
qyearsley | bd4fba6 | 2015-11-11 12:02:41 -0800 | [diff] [blame] | 69 | from catapult_build import html_checks |
petrcermak | 6dc7cbf | 2016-02-24 10:15:03 -0800 | [diff] [blame] | 70 | from catapult_build import repo_checks |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 71 | results += input_api.canned_checks.PanProjectChecks( |
| 72 | input_api, output_api, excluded_paths=_EXCLUDED_PATHS) |
sullivan | 497af69 | 2015-08-11 10:39:21 -0700 | [diff] [blame] | 73 | results += CheckChangeLogBug(input_api, output_api) |
qyearsley | e080ff9 | 2015-08-17 11:19:59 -0700 | [diff] [blame] | 74 | results += js_checks.RunChecks( |
| 75 | input_api, output_api, excluded_paths=_EXCLUDED_PATHS) |
qyearsley | bd4fba6 | 2015-11-11 12:02:41 -0800 | [diff] [blame] | 76 | results += html_checks.RunChecks( |
| 77 | input_api, output_api, excluded_paths=_EXCLUDED_PATHS) |
petrcermak | 6dc7cbf | 2016-02-24 10:15:03 -0800 | [diff] [blame] | 78 | results += repo_checks.RunChecks(input_api, output_api) |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 79 | finally: |
nduca | a6e18a9 | 2015-08-09 17:06:32 -0700 | [diff] [blame] | 80 | sys.path.remove(input_api.PresubmitLocalPath()) |
sullivan | 1e38874 | 2015-08-03 13:45:35 -0700 | [diff] [blame] | 81 | return results |
sullivan | c11564b | 2015-06-25 10:37:29 -0700 | [diff] [blame] | 82 | |
| 83 | |
| 84 | def CheckChangeOnUpload(input_api, output_api): |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 85 | return CheckChange(input_api, output_api) |
sullivan | c11564b | 2015-06-25 10:37:29 -0700 | [diff] [blame] | 86 | |
| 87 | |
| 88 | def CheckChangeOnCommit(input_api, output_api): |
Petr Cermak | 3946db2 | 2015-05-22 15:35:39 +0100 | [diff] [blame] | 89 | return CheckChange(input_api, output_api) |