Chromium Code Reviews| 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') |