In r6938 the switch to using Chromium's Git repo was deployed. However this fails on the bots since their timeout for steps without output is 1200 seconds, which is not enough to checkout the large Chromium Git repo. Adding --verbose will print more output, thus getting a longer timeout that should be enough for the runhooks step to complete. BUG=2863, chromium:339647 TEST=None TBR=phoglund@webrtc.org Review URL: https://webrtc-codereview.appspot.com/15209004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6939 4adac7df-926f-26a2-2b94-8c16560cd09d
73 lines
2.3 KiB
Python
Executable File
73 lines
2.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
def get_target_os_list():
|
|
try:
|
|
main_gclient = os.path.join(os.path.dirname(ROOT_DIR), '.gclient')
|
|
config_dict = {}
|
|
with open(main_gclient, 'rb') as deps_content:
|
|
exec(deps_content, config_dict)
|
|
return ','.join(config_dict.get('target_os', []))
|
|
except Exception as e:
|
|
print >> sys.stderr, "error while parsing .gclient:", e
|
|
|
|
|
|
def main():
|
|
CR_DIR = os.path.join(ROOT_DIR, 'chromium')
|
|
|
|
p = argparse.ArgumentParser()
|
|
p.add_argument('--target-revision', required=True,
|
|
help='The target chromium git revision [REQUIRED]')
|
|
p.add_argument('--chromium-dir', default=CR_DIR,
|
|
help=('The path to the chromium directory to sync '
|
|
'(default: %(default)r)'))
|
|
opts = p.parse_args()
|
|
opts.chromium_dir = os.path.abspath(opts.chromium_dir)
|
|
|
|
# Do a quick check to see if we were successful last time to make runhooks
|
|
# sooper fast.
|
|
flag_file = os.path.join(opts.chromium_dir, '.last_sync_chromium')
|
|
if os.path.exists(flag_file):
|
|
with open(flag_file, 'r') as f:
|
|
if f.read() == opts.target_revision:
|
|
print "Chromium already up to date:", opts.target_revision
|
|
return 0
|
|
os.unlink(flag_file)
|
|
|
|
env = os.environ.copy()
|
|
env['GYP_CHROMIUM_NO_ACTION'] = '1'
|
|
gclient_cmd = 'gclient.bat' if sys.platform.startswith('win') else 'gclient'
|
|
args = [
|
|
gclient_cmd, 'sync', '--no-history', '--force', '--verbose', '--revision',
|
|
'src@'+opts.target_revision]
|
|
target_os_list = get_target_os_list()
|
|
if target_os_list:
|
|
args += ['--deps=' + target_os_list]
|
|
|
|
print 'Running "%s" in %s' % (' '.join(args), opts.chromium_dir)
|
|
ret = subprocess.call(args, cwd=opts.chromium_dir, env=env)
|
|
if ret == 0:
|
|
with open(flag_file, 'wb') as f:
|
|
f.write(opts.target_revision)
|
|
|
|
return ret
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|