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

Side by Side Diff: tools/auto_bisect/fetch_build.py

Issue 806943007: Use builder_type when requesting/fetching builds, and add support for full linux builds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes in response to code review Created 5 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 unified diff | Download patch
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 """This module contains functions for fetching and extracting archived builds. 5 """This module contains functions for fetching and extracting archived builds.
6 6
7 The builds may be stored in different places by different types of builders; 7 The builds may be stored in different places by different types of builders;
8 for example, builders on tryserver.chromium.perf stores builds in one place, 8 for example, builders on tryserver.chromium.perf stores builds in one place,
9 while builders on chromium.linux store builds in another. 9 while builders on chromium.linux store builds in another.
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 target_arch: Architecture, e.g. "ia32". 44 target_arch: Architecture, e.g. "ia32".
45 target_platform: Platform name, e.g. "chromium" or "android". 45 target_platform: Platform name, e.g. "chromium" or "android".
46 deps_patch_sha: SHA1 hash which identifies a particular combination of 46 deps_patch_sha: SHA1 hash which identifies a particular combination of
47 custom revisions for dependency repositories. 47 custom revisions for dependency repositories.
48 extra_src: Path to a script which can be used to modify the bisect script's 48 extra_src: Path to a script which can be used to modify the bisect script's
49 behavior. 49 behavior.
50 50
51 Returns: 51 Returns:
52 A pair of strings (bucket, path), where the archive is expected to be. 52 A pair of strings (bucket, path), where the archive is expected to be.
53 """ 53 """
54 logging.info('Creating BuildArchive, type "%s", arch "%s", platform "%s".',
55 builder_type, target_arch, target_platform)
54 build_archive = BuildArchive.Create( 56 build_archive = BuildArchive.Create(
55 builder_type, target_arch=target_arch, target_platform=target_platform, 57 builder_type, target_arch=target_arch, target_platform=target_platform,
56 extra_src=extra_src) 58 extra_src=extra_src)
57 bucket = build_archive.BucketName() 59 bucket = build_archive.BucketName()
58 remote_path = build_archive.FilePath(revision, deps_patch_sha=deps_patch_sha) 60 remote_path = build_archive.FilePath(revision, deps_patch_sha=deps_patch_sha)
59 return bucket, remote_path 61 return bucket, remote_path
60 62
61 63
62 class BuildArchive(object): 64 class BuildArchive(object):
63 """Represents a place where builds of some type are stored. 65 """Represents a place where builds of some type are stored.
64 66
65 There are two pieces of information required to locate a file in Google 67 There are two pieces of information required to locate a file in Google
66 Cloud Storage, bucket name and file path. Subclasses of this class contain 68 Cloud Storage, bucket name and file path. Subclasses of this class contain
67 specific logic about which bucket names and paths should be used to fetch 69 specific logic about which bucket names and paths should be used to fetch
68 a build. 70 a build.
69 """ 71 """
70 72
71 @staticmethod 73 @staticmethod
72 def Create(builder_type, target_arch='ia32', target_platform='chromium', 74 def Create(builder_type, target_arch='ia32', target_platform='chromium',
73 extra_src=None): 75 extra_src=None):
76 logging.info('Creating BuildArchive, type "%s", arch "%s", platform "%s".',
77 builder_type, target_arch, target_platform)
74 if builder_type == PERF_BUILDER: 78 if builder_type == PERF_BUILDER:
75 return PerfBuildArchive(target_arch, target_platform) 79 return PerfBuildArchive(target_arch, target_platform)
76 if builder_type == FULL_BUILDER: 80 if builder_type == FULL_BUILDER:
77 return FullBuildArchive(target_arch, target_platform) 81 return FullBuildArchive(target_arch, target_platform)
78 if builder_type == ANDROID_CHROME_PERF_BUILDER: 82 if builder_type == ANDROID_CHROME_PERF_BUILDER:
79 try: 83 try:
80 # Load and initialize a module in extra source file and 84 # Load and initialize a module in extra source file and
81 # return its module object to access android-chrome specific data. 85 # return its module object to access android-chrome specific data.
82 loaded_extra_src = bisect_utils.LoadExtraSrc(extra_src) 86 loaded_extra_src = bisect_utils.LoadExtraSrc(extra_src)
83 return AndroidChromeBuildArchive( 87 return AndroidChromeBuildArchive(
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 print 'Build is not available.' 411 print 'Build is not available.'
408 return 1 412 return 1
409 413
410 FetchFromCloudStorage(bucket_name, remote_path, args.output_dir) 414 FetchFromCloudStorage(bucket_name, remote_path, args.output_dir)
411 print 'Build has been downloaded to and extracted in %s.' % args.output_dir 415 print 'Build has been downloaded to and extracted in %s.' % args.output_dir
412 return 0 416 return 0
413 417
414 418
415 if __name__ == '__main__': 419 if __name__ == '__main__':
416 sys.exit(Main(sys.argv)) 420 sys.exit(Main(sys.argv))
417
OLDNEW
« no previous file with comments | « tools/auto_bisect/configs/linux.bisect.functional.cfg ('k') | tools/auto_bisect/request_build.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698