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

Unified Diff: win_toolchain/toolchain2013.py

Issue 185423004: Add toolchain simple mirror option used for bots (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: abspath for target Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « win_toolchain/get_toolchain_if_necessary.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: win_toolchain/toolchain2013.py
diff --git a/win_toolchain/toolchain2013.py b/win_toolchain/toolchain2013.py
index cfeeef3ad7592df7a23531fa8ae5f58bc733b0fd..0cda5903964931872f52a8f0d4adf0bd39522519 100755
--- a/win_toolchain/toolchain2013.py
+++ b/win_toolchain/toolchain2013.py
@@ -248,7 +248,7 @@ class SourceImages(object):
self.wdk_path = wdk_path
-def GetSourceImages(local_dir, pro, bot_mode):
+def GetSourceImages(local_dir, pro):
"""Downloads the various sources that we need.
Of note: Because Express does not include ATL, there's an additional download
@@ -256,9 +256,7 @@ def GetSourceImages(local_dir, pro, bot_mode):
|pro| this is not necessary (and CHROME_HEADLESS always implies Pro).
"""
url = GetMainIsoUrl(pro)
- if bot_mode:
- return SourceImages(GetVSInternal(), GetSDKInternal(), wdk_path=None)
- elif local_dir:
+ if local_dir:
wdk_path = (os.path.join(local_dir, os.path.basename(WDK_ISO_URL))
if not pro else None)
return SourceImages(os.path.join(local_dir, os.path.basename(url)),
@@ -425,6 +423,16 @@ def GenerateSetEnvCmd(target_dir, pro):
'%~dp0..\\..\\VC\\atlmfc\\lib\\amd64\n')
+def DoTreeMirror(target_dir, tree_sha1):
+ """In order to save temporary space on bots that do not have enough space to
+ download ISOs, unpack them, and copy to the target location, the whole tree
+ is uploaded as a zip to internal storage, and then mirrored here."""
+ local_zip = DownloadUsingGsutil(tree_sha1 + '.zip')
+ sys.stdout.write('Extracting %s...\n' % local_zip)
+ sys.stdout.flush()
+ RunOrDie('7z x "%s" -y "-o%s" >nul' % (local_zip, target_dir))
+
+
def main():
parser = optparse.OptionParser(description=sys.modules[__name__].__doc__)
parser.add_option('--targetdir', metavar='DIR',
@@ -437,6 +445,9 @@ def main():
help='use downloaded files from DIR')
parser.add_option('--express',
help='use VS Express instead of Pro', action='store_true')
+ parser.add_option('--sha1',
+ help='tree sha1 that can be used to mirror an internal '
+ 'copy (used if --bot-mode)')
parser.add_option('--bot-mode',
help='Use internal servers to pull isos',
default=bool(int(os.environ.get('CHROME_HEADLESS', 0))),
@@ -446,18 +457,20 @@ def main():
target_dir = os.path.abspath(options.targetdir)
if os.path.exists(target_dir):
parser.error('%s already exists. Please [re]move it or use '
- '--targetdir to select a different target.\n' %
- target_dir)
+ '--targetdir to select a different target.\n' %
+ target_dir)
# Set the working directory to 7z subdirectory. 7-zip doesn't find its
# codec dll very well, so this is the simplest way to make sure it runs
# correctly, as we don't otherwise care about working directory.
os.chdir(os.path.join(BASEDIR, '7z'))
- images = GetSourceImages(
- options.local, not options.express, options.bot_mode)
- extracted = ExtractComponents(images)
- CopyToFinalLocation(extracted, target_dir)
+ if options.bot_mode and options.sha1:
+ DoTreeMirror(target_dir, options.sha1)
+ else:
+ images = GetSourceImages(options.local, not options.express)
+ extracted = ExtractComponents(images)
+ CopyToFinalLocation(extracted, target_dir)
+ GenerateSetEnvCmd(target_dir, not options.express)
- GenerateSetEnvCmd(target_dir, not options.express)
data = {
'path': target_dir,
'version': '2013e' if options.express else '2013',
« no previous file with comments | « win_toolchain/get_toolchain_if_necessary.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698