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

Side by Side Diff: scripts/slave/recipe_modules/chromium_android/api.py

Issue 23889036: Refactor the way that TestApi works so that it is actually useful. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: License headers Created 7 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 | Annotate | Revision Log
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 slave import recipe_api 5 from slave import recipe_api
6 6
7 class AndroidApi(recipe_api.RecipeApi): 7 class AndroidApi(recipe_api.RecipeApi):
8 def __init__(self, **kwargs): 8 def __init__(self, **kwargs):
9 super(AndroidApi, self).__init__(**kwargs) 9 super(AndroidApi, self).__init__(**kwargs)
10 self._env = dict() 10 self._env = dict()
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 REPO_URL=repo_url, 42 REPO_URL=repo_url,
43 BUILD_CONFIG=target) 43 BUILD_CONFIG=target)
44 44
45 # TODO(sivachandra): Move the setting of the gclient spec below to an 45 # TODO(sivachandra): Move the setting of the gclient spec below to an
46 # internal config extension when they are supported by the recipe system. 46 # internal config extension when they are supported by the recipe system.
47 spec = self.m.gclient.make_config('android_bare') 47 spec = self.m.gclient.make_config('android_bare')
48 spec.target_os = ['android'] 48 spec.target_os = ['android']
49 s = spec.solutions[0] 49 s = spec.solutions[0]
50 s.name = repo_name 50 s.name = repo_name
51 s.url = repo_url 51 s.url = repo_url
52 s.custom_vars = self.c.custom_vars
53 s.custom_deps = gclient_custom_deps or {} 52 s.custom_deps = gclient_custom_deps or {}
54 if revision: 53 if revision:
55 s.revision = revision 54 s.revision = revision
56 else: 55 else:
57 s.revision = 'refs/remotes/origin/master' 56 s.revision = 'refs/remotes/origin/master'
58 57
59 yield self.m.gclient.checkout(spec) 58 yield self.m.gclient.checkout(spec)
60 59
61 # TODO(sivachandra): Manufacture gclient spec such that it contains "src" 60 # TODO(sivachandra): Manufacture gclient spec such that it contains "src"
62 # solution + repo_name solution. Then checkout will be automatically 61 # solution + repo_name solution. Then checkout will be automatically
(...skipping 10 matching lines...) Expand all
73 if isinstance(val, list): 72 if isinstance(val, list):
74 gyp_defs[gyp_def] = self.m.path.checkout(*val) 73 gyp_defs[gyp_def] = self.m.path.checkout(*val)
75 74
76 if internal: 75 if internal:
77 yield self.m.step( 76 yield self.m.step(
78 'get app_manifest_vars', 77 'get app_manifest_vars',
79 [self.m.path.checkout( 78 [self.m.path.checkout(
80 self._internal_dir, 'build', 'dump_app_manifest_vars.py'), 79 self._internal_dir, 'build', 'dump_app_manifest_vars.py'),
81 '-b', self.m.properties['buildername'], 80 '-b', self.m.properties['buildername'],
82 '-v', self.m.path.checkout('chrome', 'VERSION'), 81 '-v', self.m.path.checkout('chrome', 'VERSION'),
83 self.m.json.output()] 82 '--output-json', self.m.json.output()]
84 ) 83 )
85 84
86 app_manifest_vars = self.m.step_history.last_step().json.output 85 app_manifest_vars = self.m.step_history.last_step().json.output
87 gyp_defs = self.m.chromium.c.gyp_env.GYP_DEFINES 86 gyp_defs = self.m.chromium.c.gyp_env.GYP_DEFINES
88 gyp_defs['app_manifest_version_code'] = app_manifest_vars['version_code'] 87 gyp_defs['app_manifest_version_code'] = app_manifest_vars['version_code']
89 gyp_defs['app_manifest_version_name'] = app_manifest_vars['version_name'] 88 gyp_defs['app_manifest_version_name'] = app_manifest_vars['version_name']
90 gyp_defs['chrome_build_id'] = app_manifest_vars['build_id'] 89 gyp_defs['chrome_build_id'] = app_manifest_vars['build_id']
91 90
92 def envsetup(self): 91 def envsetup(self):
93 envsetup_cmd = [self.m.path.checkout('build', 'android', 'envsetup.sh')] 92 envsetup_cmd = [self.m.path.checkout('build', 'android', 'envsetup.sh')]
94 if self.c.target_arch: 93 if self.c.target_arch:
95 envsetup_cmd += ['--target-arch=%s' % self.c.target_arch] 94 envsetup_cmd += ['--target-arch=%s' % self.c.target_arch]
96 95
97 cmd = ([self.m.path.checkout('build', 'env_dump.py'), 96 cmd = ([self.m.path.checkout('build', 'env_dump.py'),
98 self.m.json.output()] + envsetup_cmd) 97 '--output-json', self.m.json.output()] + envsetup_cmd)
99 yield self.m.step('envsetup', cmd, env=self.get_env()) 98 yield self.m.step('envsetup', cmd, env=self.get_env())
100 99
101 env_diff = self.m.step_history.last_step().json.output 100 env_diff = self.m.step_history.last_step().json.output
102 for key, value in env_diff.iteritems(): 101 for key, value in env_diff.iteritems():
103 if key.startswith('GYP_'): 102 if key.startswith('GYP_'):
104 continue 103 continue
105 else: 104 else:
106 self._env[key] = value 105 self._env[key] = value
107 106
108 def clean_local_files(self): 107 def clean_local_files(self):
(...skipping 16 matching lines...) Expand all
125 124
126 def run_tree_truth(self, show_revisions=False): 125 def run_tree_truth(self, show_revisions=False):
127 # TODO(sivachandra): The downstream ToT builder will require 126 # TODO(sivachandra): The downstream ToT builder will require
128 # 'Show Revisions' step. 127 # 'Show Revisions' step.
129 repos = ['src', 'src-internal'] 128 repos = ['src', 'src-internal']
130 if self.c.REPO_NAME not in repos: 129 if self.c.REPO_NAME not in repos:
131 repos.append(self.c.REPO_NAME) 130 repos.append(self.c.REPO_NAME)
132 # TODO(sivachandra): Disable subannottations after cleaning up 131 # TODO(sivachandra): Disable subannottations after cleaning up
133 # tree_truth.sh. 132 # tree_truth.sh.
134 yield self.m.step('tree truth steps', 133 yield self.m.step('tree truth steps',
135 [self.m.path.checkout('build', 'tree_truth.sh'), 134 [self.m.path.checkout('build', 'tree_truth.sh'),
136 self.m.path.checkout()] + repos, 135 self.m.path.checkout()] + repos,
137 allow_subannottations=True) 136 allow_subannottations=True)
138 137
139 def runhooks(self): 138 def runhooks(self):
140 run_hooks_env = self.get_env() 139 run_hooks_env = self.get_env()
141 if self.m.properties.get('internal'): 140 if self.m.properties.get('internal'):
142 run_hooks_env['EXTRA_LANDMINES_SCRIPT'] = self.m.path.checkout( 141 run_hooks_env['EXTRA_LANDMINES_SCRIPT'] = self.m.path.checkout(
143 self._internal_dir, 'build', 'get_internal_landmines.py') 142 self._internal_dir, 'build', 'get_internal_landmines.py')
144 return self.m.chromium.runhooks(env=run_hooks_env) 143 return self.m.chromium.runhooks(env=run_hooks_env)
145 144
(...skipping 15 matching lines...) Expand all
161 [self.m.path.checkout('tools', 'checkdeps', 'checkdeps.py'), 160 [self.m.path.checkout('tools', 'checkdeps', 'checkdeps.py'),
162 '--root=%s' % self._internal_dir], 161 '--root=%s' % self._internal_dir],
163 env=self.get_env()) 162 env=self.get_env())
164 163
165 def lint(self): 164 def lint(self):
166 if self.c.INTERNAL: 165 if self.c.INTERNAL:
167 return self.m.step( 166 return self.m.step(
168 'lint', 167 'lint',
169 [self.m.path.checkout(self._internal_dir, 'bin', 'lint.py')], 168 [self.m.path.checkout(self._internal_dir, 'bin', 'lint.py')],
170 env=self.get_env()) 169 env=self.get_env())
OLDNEW
« no previous file with comments | « scripts/slave/recipe_modules/chromium/config.py ('k') | scripts/slave/recipe_modules/chromium_android/config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698