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

Side by Side Diff: scripts/slave/compile.py

Issue 1896113002: compile.py: explicitly pass gsutil.py path for uploading goma logs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 4 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | scripts/slave/goma_utils.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """A tool to build chrome, executed by buildbot. 6 """A tool to build chrome, executed by buildbot.
7 7
8 When this is run, the current directory (cwd) should be the outer build 8 When this is run, the current directory (cwd) should be the outer build
9 directory (e.g., chrome-release/build/). 9 directory (e.g., chrome-release/build/).
10 10
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 goma_ctl_cmd + ['jsonstatus', options.goma_jsonstatus], env=env) 192 goma_ctl_cmd + ['jsonstatus', options.goma_jsonstatus], env=env)
193 goma_utils.SendGomaTsMon(options.goma_jsonstatus, -1) 193 goma_utils.SendGomaTsMon(options.goma_jsonstatus, -1)
194 194
195 # Try to stop compiler_proxy so that it flushes logs and stores 195 # Try to stop compiler_proxy so that it flushes logs and stores
196 # GomaStats. 196 # GomaStats.
197 if options.build_data_dir: 197 if options.build_data_dir:
198 env['GOMACTL_CRASH_REPORT_ID_FILE'] = os.path.join(options.build_data_dir, 198 env['GOMACTL_CRASH_REPORT_ID_FILE'] = os.path.join(options.build_data_dir,
199 'crash_report_id_file') 199 'crash_report_id_file')
200 chromium_utils.RunCommand(goma_ctl_cmd + ['stop'], env=env) 200 chromium_utils.RunCommand(goma_ctl_cmd + ['stop'], env=env)
201 201
202 override_gsutil = None
203 if options.gsutil_py_path:
204 override_gsutil = [sys.executable, options.gsutil_py_path]
205
202 # Upload compiler_proxy.INFO to investigate the reason of compiler_proxy 206 # Upload compiler_proxy.INFO to investigate the reason of compiler_proxy
203 # start-up failure. 207 # start-up failure.
204 goma_utils.UploadGomaCompilerProxyInfo() 208 goma_utils.UploadGomaCompilerProxyInfo(override_gsutil=override_gsutil)
205 # Upload GomaStats to make it monitored. 209 # Upload GomaStats to make it monitored.
206 if env.get('GOMA_DUMP_STATS_FILE'): 210 if env.get('GOMA_DUMP_STATS_FILE'):
207 goma_utils.SendGomaStats(env['GOMA_DUMP_STATS_FILE'], 211 goma_utils.SendGomaStats(env['GOMA_DUMP_STATS_FILE'],
208 env.get('GOMACTL_CRASH_REPORT_ID_FILE'), 212 env.get('GOMACTL_CRASH_REPORT_ID_FILE'),
209 options.build_data_dir) 213 options.build_data_dir)
210 214
211 if options.goma_disable_local_fallback: 215 if options.goma_disable_local_fallback:
212 print 'error: failed to start goma; fallback has been disabled' 216 print 'error: failed to start goma; fallback has been disabled'
213 raise Exception('failed to start goma') 217 raise Exception('failed to start goma')
214 218
215 print 'warning: failed to start goma. falling back to non-goma' 219 print 'warning: failed to start goma. falling back to non-goma'
216 # Drop goma from options.compiler 220 # Drop goma from options.compiler
217 options.compiler = options.compiler.replace('goma-', '') 221 options.compiler = options.compiler.replace('goma-', '')
218 if options.compiler == 'goma': 222 if options.compiler == 'goma':
219 options.compiler = None 223 options.compiler = None
220 # Reset options.goma_dir. 224 # Reset options.goma_dir.
221 options.goma_dir = None 225 options.goma_dir = None
222 env['GOMA_DISABLED'] = '1' 226 env['GOMA_DISABLED'] = '1'
223 return False 227 return False
224 228
225 229
226 def goma_teardown(options, env, exit_status): 230 def goma_teardown(options, env, exit_status):
227 """Tears down goma if necessary. """ 231 """Tears down goma if necessary. """
228 if (options.compiler in ('goma', 'goma-clang') and 232 if (options.compiler in ('goma', 'goma-clang') and
229 options.goma_dir): 233 options.goma_dir):
234 override_gsutil = None
235 if options.gsutil_py_path:
236 override_gsutil = [sys.executable, options.gsutil_py_path]
237
230 # If goma compiler_proxy crashes during the build, there could be crash 238 # If goma compiler_proxy crashes during the build, there could be crash
231 # dump. 239 # dump.
232 if options.build_data_dir: 240 if options.build_data_dir:
233 env['GOMACTL_CRASH_REPORT_ID_FILE'] = os.path.join(options.build_data_dir, 241 env['GOMACTL_CRASH_REPORT_ID_FILE'] = os.path.join(options.build_data_dir,
234 'crash_report_id_file') 242 'crash_report_id_file')
235 goma_ctl_cmd = [sys.executable, 243 goma_ctl_cmd = [sys.executable,
236 os.path.join(options.goma_dir, 'goma_ctl.py')] 244 os.path.join(options.goma_dir, 'goma_ctl.py')]
237 if options.goma_jsonstatus: 245 if options.goma_jsonstatus:
238 chromium_utils.RunCommand( 246 chromium_utils.RunCommand(
239 goma_ctl_cmd + ['jsonstatus', options.goma_jsonstatus], env=env) 247 goma_ctl_cmd + ['jsonstatus', options.goma_jsonstatus], env=env)
240 goma_utils.SendGomaTsMon(options.goma_jsonstatus, exit_status) 248 goma_utils.SendGomaTsMon(options.goma_jsonstatus, exit_status)
241 # Always stop the proxy for now to allow in-place update. 249 # Always stop the proxy for now to allow in-place update.
242 chromium_utils.RunCommand(goma_ctl_cmd + ['stop'], env=env) 250 chromium_utils.RunCommand(goma_ctl_cmd + ['stop'], env=env)
243 goma_utils.UploadGomaCompilerProxyInfo() 251 goma_utils.UploadGomaCompilerProxyInfo(override_gsutil=override_gsutil)
244 if env.get('GOMA_DUMP_STATS_FILE'): 252 if env.get('GOMA_DUMP_STATS_FILE'):
245 goma_utils.SendGomaStats(env['GOMA_DUMP_STATS_FILE'], 253 goma_utils.SendGomaStats(env['GOMA_DUMP_STATS_FILE'],
246 env.get('GOMACTL_CRASH_REPORT_ID_FILE'), 254 env.get('GOMACTL_CRASH_REPORT_ID_FILE'),
247 options.build_data_dir) 255 options.build_data_dir)
248 256
249 257
250 def common_xcode_settings(command, options, env, compiler=None): 258 def common_xcode_settings(command, options, env, compiler=None):
251 """ 259 """
252 Sets desirable Mac environment variables and command-line options 260 Sets desirable Mac environment variables and command-line options
253 that are common to the Xcode builds. 261 that are common to the Xcode builds.
(...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 if not filter_obj.was_up_to_date: 960 if not filter_obj.was_up_to_date:
953 print 'Failing build because ninja reported work to do.' 961 print 'Failing build because ninja reported work to do.'
954 print 'This means that after completing a compile, another was run and' 962 print 'This means that after completing a compile, another was run and'
955 print 'it resulted in still having work to do (that is, a no-op build' 963 print 'it resulted in still having work to do (that is, a no-op build'
956 print 'wasn\'t a no-op). Consult the first "ninja explain:" line for a' 964 print 'wasn\'t a no-op). Consult the first "ninja explain:" line for a'
957 print 'likely culprit.' 965 print 'likely culprit.'
958 return 1 966 return 1
959 return exit_status 967 return exit_status
960 finally: 968 finally:
961 goma_teardown(options, env, exit_status) 969 goma_teardown(options, env, exit_status)
970
971 override_gsutil = None
972 if options.gsutil_py_path:
973 override_gsutil = [sys.executable, options.gsutil_py_path]
974
962 goma_utils.UploadNinjaLog( 975 goma_utils.UploadNinjaLog(
963 options.target_output_dir, options.compiler, command, exit_status) 976 options.target_output_dir, options.compiler, command, exit_status,
977 override_gsutil=override_gsutil)
964 978
965 979
966 def main_win(options, args): 980 def main_win(options, args):
967 """Interprets options, clobbers object files, and calls the build tool. 981 """Interprets options, clobbers object files, and calls the build tool.
968 """ 982 """
969 if not options.solution: 983 if not options.solution:
970 options.solution = 'all.sln' 984 options.solution = 'all.sln'
971 solution = os.path.join(options.build_dir, options.solution) 985 solution = os.path.join(options.build_dir, options.solution)
972 986
973 # Prefer the version specified in the .sln. When devenv.com is used at the 987 # Prefer the version specified in the .sln. When devenv.com is used at the
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 option_parser.add_option('--goma-enable-compiler-info-cache', 1259 option_parser.add_option('--goma-enable-compiler-info-cache',
1246 action='store_true', 1260 action='store_true',
1247 help='Enable goma CompilerInfo cache') 1261 help='Enable goma CompilerInfo cache')
1248 option_parser.add_option('--goma-store-local-run-output', default=None, 1262 option_parser.add_option('--goma-store-local-run-output', default=None,
1249 help='Store local run output to goma servers.') 1263 help='Store local run output to goma servers.')
1250 option_parser.add_option('--goma-fail-fast', action='store_true') 1264 option_parser.add_option('--goma-fail-fast', action='store_true')
1251 option_parser.add_option('--goma-disable-local-fallback', action='store_true') 1265 option_parser.add_option('--goma-disable-local-fallback', action='store_true')
1252 option_parser.add_option('--goma-jsonstatus', 1266 option_parser.add_option('--goma-jsonstatus',
1253 help='Specify a file to dump goma_ctl jsonstatus.') 1267 help='Specify a file to dump goma_ctl jsonstatus.')
1254 option_parser.add_option('--verbose', action='store_true') 1268 option_parser.add_option('--verbose', action='store_true')
1269 option_parser.add_option('--gsutil-py-path',
1270 help='Specify path to gsutil.py script.')
1255 option_parser.add_option('--ninja-path', default='ninja', 1271 option_parser.add_option('--ninja-path', default='ninja',
1256 help='Specify path to the ninja tool.') 1272 help='Specify path to the ninja tool.')
1257 option_parser.add_option('--ninja-ensure-up-to-date', action='store_true', 1273 option_parser.add_option('--ninja-ensure-up-to-date', action='store_true',
1258 help='Checks the output of the ninja builder to ' 1274 help='Checks the output of the ninja builder to '
1259 'confirm that a second compile immediately ' 1275 'confirm that a second compile immediately '
1260 'the first is a no-op.') 1276 'the first is a no-op.')
1261 1277
1262 options, args = option_parser.parse_args() 1278 options, args = option_parser.parse_args()
1263 1279
1264 if not options.src_dir: 1280 if not options.src_dir:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 sys.stderr.write('Unknown build tool %s.\n' % repr(options.build_tool)) 1345 sys.stderr.write('Unknown build tool %s.\n' % repr(options.build_tool))
1330 return 2 1346 return 2
1331 1347
1332 options.target_output_dir = get_target_build_dir(args, options) 1348 options.target_output_dir = get_target_build_dir(args, options)
1333 1349
1334 return main(options, args) 1350 return main(options, args)
1335 1351
1336 1352
1337 if '__main__' == __name__: 1353 if '__main__' == __name__:
1338 sys.exit(real_main()) 1354 sys.exit(real_main())
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/goma_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698