Index: scripts/slave/recipe_modules/libyuv/api.py |
diff --git a/scripts/slave/recipe_modules/libyuv/api.py b/scripts/slave/recipe_modules/libyuv/api.py |
index 59e960945955c2599ae39f2f2631f5247972eb74..64434e79b68d13fc58f32dc06792121193dc8df1 100644 |
--- a/scripts/slave/recipe_modules/libyuv/api.py |
+++ b/scripts/slave/recipe_modules/libyuv/api.py |
@@ -13,11 +13,11 @@ class LibyuvApi(recipe_api.RecipeApi): |
def __init__(self, **kwargs): |
super(LibyuvApi, self).__init__(**kwargs) |
- |
def apply_bot_config(self, builders, recipe_configs, perf_config=None): |
mastername = self.m.properties.get('mastername') |
buildername = self.m.properties.get('buildername') |
master_dict = builders.get(mastername, {}) |
+ self.master_config = master_dict.get('settings', {}) |
self.bot_config = master_dict.get('builders', {}).get(buildername) |
assert self.bot_config, ('Unrecognized builder name "%r" for master "%r".' % |
@@ -31,6 +31,9 @@ class LibyuvApi(recipe_api.RecipeApi): |
(recipe_config_name, buildername)) |
chromium_kwargs = self.bot_config.get('chromium_config_kwargs', {}) |
+ if self.recipe_config.get('chromium_android_config'): |
+ self.m.chromium_android.set_config( |
+ self.recipe_config['chromium_android_config'], **chromium_kwargs) |
self.m.chromium.set_config(self.recipe_config['chromium_config'], |
**chromium_kwargs) |
@@ -52,3 +55,73 @@ class LibyuvApi(recipe_api.RecipeApi): |
@property |
def should_test(self): |
return self.bot_type in ('tester', 'builder_tester') |
+ |
+ @property |
+ def should_upload_build(self): |
+ return self.bot_config.get('triggers') |
+ |
+ @property |
+ def should_download_build(self): |
+ return self.bot_config.get('parent_buildername') |
+ |
+ def checkout(self): |
+ update_step = self.m.bot_update.ensure_checkout(force=True) |
+ assert update_step.json.output['did_run'] |
+ self.revision = update_step.presentation.properties['got_revision'] |
+ |
+ def maybe_trigger(self): |
+ triggers = self.bot_config.get('triggers') |
+ if triggers: |
+ properties = { |
+ 'revision': self.revision, |
+ 'parent_got_revision': self.revision, |
+ } |
+ self.m.trigger(*[{ |
+ 'builder_name': builder_name, |
+ 'properties': properties, |
+ } for builder_name in triggers]) |
+ |
+ |
+ def package_build(self): |
+ upload_url = self.m.archive.legacy_upload_url( |
+ self.master_config.get('build_gs_bucket'), |
+ extra_url_components=self.m.properties['mastername']) |
+ self.m.archive.zip_and_upload_build( |
+ 'package build', |
+ self.m.chromium.c.build_config_fs, |
+ upload_url, |
+ build_revision=self.revision) |
+ |
+ def extract_build(self): |
+ if not self.m.properties.get('parent_got_revision'): |
+ raise self.m.step.StepFailure( |
+ 'Testers cannot be forced without providing revision information.' |
Michael Achenbach
2016/09/06 08:17:49
nit: add spaces where the string wraps.
kjellander_chromium
2016/09/06 10:52:34
Done.
|
+ 'Please select a previous build and click [Rebuild] or force a build' |
+ 'for a Builder instead (will trigger new runs for the testers).') |
+ |
+ # Ensure old build directory is not used is by removing it. |
Michael Achenbach
2016/09/06 08:17:49
nit: grammar. "is" too much? Or maybe restructure
kjellander_chromium
2016/09/06 10:52:34
Done.
|
+ self.m.file.rmtree( |
+ 'build directory', |
+ self.m.chromium.c.build_dir.join(self.m.chromium.c.build_config_fs)) |
+ |
+ download_url = self.m.archive.legacy_download_url( |
+ self.master_config.get('build_gs_bucket'), |
+ extra_url_components=self.m.properties['mastername']) |
+ self.m.archive.download_and_unzip_build( |
+ 'extract build', |
+ self.m.chromium.c.build_config_fs, |
+ download_url, |
+ build_revision=self.revision) |
+ |
+ def runtests(self): |
+ """Add a suite of test steps.""" |
+ with self.m.step.defer_results(): |
+ if self.m.chromium.c.TARGET_PLATFORM == 'android': |
+ self.m.chromium_android.common_tests_setup_steps() |
+ self.m.chromium_android.run_test_suite('yuv_unittest') |
+ self.m.chromium_android.shutdown_device_monitor() |
+ self.m.chromium_android.logcat_dump(gs_bucket='chromium-android') |
Michael Achenbach
2016/09/06 08:17:49
Maybe keep gs bucket generic?
self.master_config.g
kjellander_chromium
2016/09/06 10:52:34
right, I should get a separate bucket for libyuv f
|
+ self.m.chromium_android.stack_tool_steps(force_latest_version=True) |
+ self.m.chromium_android.test_report() |
+ else: |
+ self.m.chromium.runtest('libyuv_unittest') |