Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: scripts/slave/recipes/chromium_codesearch.py

Issue 2332283002: Use [CACHE]/cipd/goma for goma_dir in recipes/chromium_codesearch.py (Closed)
Patch Set: use goma_dir Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/recipes/chromium_codesearch.expected/full_ChromiumOS_Codesearch.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from recipe_engine.types import freeze 5 from recipe_engine.types import freeze
6 6
7 DEPS = [ 7 DEPS = [
8 'depot_tools/bot_update',
9 'chromium', 8 'chromium',
10 'commit_position', 9 'commit_position',
10 'depot_tools/bot_update',
11 'depot_tools/gclient',
11 'file', 12 'file',
12 'depot_tools/gclient', 13 'goma',
13 'gsutil', 14 'gsutil',
14 'recipe_engine/json', 15 'recipe_engine/json',
15 'recipe_engine/path', 16 'recipe_engine/path',
16 'recipe_engine/properties', 17 'recipe_engine/properties',
17 'recipe_engine/python', 18 'recipe_engine/python',
18 'recipe_engine/raw_io', 19 'recipe_engine/raw_io',
19 'recipe_engine/step', 20 'recipe_engine/step',
20 ] 21 ]
21 22
22 BUCKET_NAME = 'chrome-codesearch' 23 BUCKET_NAME = 'chrome-codesearch'
(...skipping 15 matching lines...) Expand all
38 'tools/deps2git': '%s/chromium/tools/deps2git' % CHROMIUM_GIT_URL, 39 'tools/deps2git': '%s/chromium/tools/deps2git' % CHROMIUM_GIT_URL,
39 'tools/gsd_generate_index':\ 40 'tools/gsd_generate_index':\
40 '%s/chromium/tools/gsd_generate_index' % CHROMIUM_GIT_URL, 41 '%s/chromium/tools/gsd_generate_index' % CHROMIUM_GIT_URL,
41 'tools/perf': '%s/chromium/tools/perf' % CHROMIUM_GIT_URL, 42 'tools/perf': '%s/chromium/tools/perf' % CHROMIUM_GIT_URL,
42 }) 43 })
43 44
44 LINUX_GN_ARGS = [ 45 LINUX_GN_ARGS = [
45 'is_clang=true', 46 'is_clang=true',
46 'is_component_build=true', 47 'is_component_build=true',
47 'is_debug=true', 48 'is_debug=true',
48 'goma_dir="/b/build/goma"',
49 'symbol_level=1', 49 'symbol_level=1',
50 'target_cpu="x64"', 50 'target_cpu="x64"',
51 'use_goma=true',
52 ] 51 ]
53 52
54 CHROMEOS_GN_ARGS = LINUX_GN_ARGS + [ 53 CHROMEOS_GN_ARGS = LINUX_GN_ARGS + [
55 'target_os="chromeos"', 54 'target_os="chromeos"',
56 'use_ozone=true', 55 'use_ozone=true',
57 ] 56 ]
58 57
59 SPEC = freeze({ 58 SPEC = freeze({
60 # The builders have the following parameters: 59 # The builders have the following parameters:
61 # - compile_targets: the compile targets. 60 # - compile_targets: the compile targets.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 'platform': 'chromeos', 95 'platform': 'chromeos',
97 }, 96 },
98 }, 97 },
99 }) 98 })
100 99
101 def GenerateCompilationDatabase(api, debug_path, targets, platform): 100 def GenerateCompilationDatabase(api, debug_path, targets, platform):
102 # TODO(akuegel): If we ever build on Windows or Mac, this needs to be 101 # TODO(akuegel): If we ever build on Windows or Mac, this needs to be
103 # adjusted. 102 # adjusted.
104 gn_path = api.path['checkout'].join('buildtools', 'linux64', 'gn') 103 gn_path = api.path['checkout'].join('buildtools', 'linux64', 'gn')
105 args = LINUX_GN_ARGS if platform == 'linux' else CHROMEOS_GN_ARGS 104 args = LINUX_GN_ARGS if platform == 'linux' else CHROMEOS_GN_ARGS
105 args.extend(['use_goma=true',
106 'goma_dir=%s' % api.goma.goma_dir])
ukai 2016/09/21 07:12:49 hmm. https://build.chromium.org/p/chromium.infra.c
106 command = [gn_path, 'gen', debug_path, '--args=%s' % ' '.join(args)] 107 command = [gn_path, 'gen', debug_path, '--args=%s' % ' '.join(args)]
107 api.step('generate build files for %s' % platform, command, 108 api.step('generate build files for %s' % platform, command,
108 cwd=api.path['checkout']) 109 cwd=api.path['checkout'])
109 command = ['ninja', '-C', debug_path] + list(targets) 110 command = ['ninja', '-C', debug_path] + list(targets)
110 # Add the parameters for creating the compilation database. 111 # Add the parameters for creating the compilation database.
111 command += ['-t', 'compdb', 'cc', 'cxx', 'objc', 'objcxx'] 112 command += ['-t', 'compdb', 'cc', 'cxx', 'objc', 'objcxx']
112 return api.step('generate compilation database for %s' % platform, 113
113 command, 114 command += ['-j', api.goma.recommended_goma_jobs]
114 stdout=api.raw_io.output()) 115
116 with api.goma.build_with_goma(
117 ninja_log_outdir=debug_path,
118 ninja_log_command=command,
119 ninja_log_compiler='goma'):
120 return api.step('generate compilation database for %s' % platform,
121 command,
122 stdout=api.raw_io.output())
115 123
116 124
117 def RunSteps(api): 125 def RunSteps(api):
118 buildername = api.properties.get('buildername') 126 buildername = api.properties.get('buildername')
119 127
120 bot_config = SPEC.get('builders', {}).get(buildername) 128 bot_config = SPEC.get('builders', {}).get(buildername)
121 platform = bot_config.get('platform', 'linux') 129 platform = bot_config.get('platform', 'linux')
122 130
123 # Checkout the repositories that are either directly needed or should be 131 # Checkout the repositories that are either directly needed or should be
124 # included in the source archive. 132 # included in the source archive.
125 gclient_config = api.gclient.make_config('chromium') 133 gclient_config = api.gclient.make_config('chromium')
126 for name, url in ADDITIONAL_REPOS.iteritems(): 134 for name, url in ADDITIONAL_REPOS.iteritems():
127 solution = gclient_config.solutions.add() 135 solution = gclient_config.solutions.add()
128 solution.name = name 136 solution.name = name
129 solution.url = url 137 solution.url = url
130 api.gclient.c = gclient_config 138 api.gclient.c = gclient_config
131 update_step = api.bot_update.ensure_checkout() 139 update_step = api.bot_update.ensure_checkout()
132 api.chromium.set_build_properties(update_step.json.output['properties']) 140 api.chromium.set_build_properties(update_step.json.output['properties'])
133 141
134 # Remove the llvm-build directory, so that gclient runhooks will download 142 # Remove the llvm-build directory, so that gclient runhooks will download
135 # the pre-built clang binary and not use the locally compiled binary from 143 # the pre-built clang binary and not use the locally compiled binary from
136 # the 'compile translation_unit clang tool' step. 144 # the 'compile translation_unit clang tool' step.
137 api.file.rmtree('llvm-build', 145 api.file.rmtree('llvm-build',
138 api.path['checkout'].join('third_party', 'llvm-build')) 146 api.path['checkout'].join('third_party', 'llvm-build'))
139 147
140 debug_path = api.path['checkout'].join('out', 'Debug') 148 debug_path = api.path['checkout'].join('out', 'Debug')
141 targets = bot_config.get('compile_targets', []) 149 targets = bot_config.get('compile_targets', [])
142 api.chromium.set_config('codesearch', BUILD_CONFIG='Debug') 150 api.chromium.set_config('codesearch', BUILD_CONFIG='Debug')
151 api.chromium.ensure_goma()
143 api.chromium.runhooks() 152 api.chromium.runhooks()
144 153
145 result = GenerateCompilationDatabase(api, debug_path, targets, platform) 154 result = GenerateCompilationDatabase(api, debug_path, targets, platform)
146 155
147 try: 156 try:
148 api.chromium.compile(targets) 157 api.chromium.compile(targets)
149 except api.step.StepFailure as f: # pragma: no cover 158 except api.step.StepFailure as f: # pragma: no cover
150 # Even if compilation fails, the Grok indexer may still be able to extract 159 # Even if compilation fails, the Grok indexer may still be able to extract
151 # (almost) all cross references. And the downside of failing on compile 160 # (almost) all cross references. And the downside of failing on compile
152 # error is that Codesearch gets stale. 161 # error is that Codesearch gets stale.
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 api.test( 265 api.test(
257 'full_%s_fail' % _sanitize_nonalpha('ChromiumOS Codesearch')) + 266 'full_%s_fail' % _sanitize_nonalpha('ChromiumOS Codesearch')) +
258 api.step_data('generate compilation database for chromeos', 267 api.step_data('generate compilation database for chromeos',
259 stdout=api.raw_io.output('some compilation data')) + 268 stdout=api.raw_io.output('some compilation data')) +
260 api.step_data('generate compilation database for linux', 269 api.step_data('generate compilation database for linux',
261 stdout=api.raw_io.output('some compilation data')) + 270 stdout=api.raw_io.output('some compilation data')) +
262 api.step_data('run translation_unit clang tool', retcode=2) + 271 api.step_data('run translation_unit clang tool', retcode=2) +
263 api.properties.generic(buildername='ChromiumOS Codesearch', 272 api.properties.generic(buildername='ChromiumOS Codesearch',
264 mastername='chromium.infra.cron') 273 mastername='chromium.infra.cron')
265 ) 274 )
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipes/chromium_codesearch.expected/full_ChromiumOS_Codesearch.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698