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

Unified Diff: infra/bots/recipe_modules/flavor/default_flavor.py

Issue 2198173002: Re-organize Skia recipes (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix missing dependency Created 4 years, 4 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 | « infra/bots/recipe_modules/flavor/coverage_flavor.py ('k') | infra/bots/recipe_modules/flavor/gn_flavor.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: infra/bots/recipe_modules/flavor/default_flavor.py
diff --git a/infra/bots/recipe_modules/skia/default_flavor.py b/infra/bots/recipe_modules/flavor/default_flavor.py
similarity index 66%
rename from infra/bots/recipe_modules/skia/default_flavor.py
rename to infra/bots/recipe_modules/flavor/default_flavor.py
index 9c0734047ee1665338e1157e802955cc3514568d..4cdbaaa671fd00db8689b4432fb0d74b6150bf80 100644
--- a/infra/bots/recipe_modules/skia/default_flavor.py
+++ b/infra/bots/recipe_modules/flavor/default_flavor.py
@@ -3,6 +3,9 @@
# found in the LICENSE file.
+# pylint: disable=W0201
+
+
"""Default flavor utils class, used for desktop builders."""
@@ -66,28 +69,28 @@ class DefaultFlavorUtils(object):
copying files between the host and Android device, as well as the
'step' function, so that commands may be run through ADB.
"""
- def __init__(self, skia_api, *args, **kwargs):
- self._skia_api = skia_api
+ def __init__(self, m):
+ self.m = m
self._chrome_path = None
- self._win_toolchain_dir = self._skia_api.slave_dir.join(WIN_TOOLCHAIN_DIR)
- win_toolchain_asset_path = self._skia_api.infrabots_dir.join(
+ self._win_toolchain_dir = self.m.vars.slave_dir.join(WIN_TOOLCHAIN_DIR)
+ win_toolchain_asset_path = self.m.vars.infrabots_dir.join(
'assets', 'win_toolchain', 'VERSION')
- if not self._skia_api.m.path.exists(win_toolchain_asset_path):
- self._win_toolchain_dir = self._skia_api.slave_dir
+ if not self.m.path.exists(win_toolchain_asset_path):
+ self._win_toolchain_dir = self.m.vars.slave_dir
def step(self, name, cmd, **kwargs):
"""Wrapper for the Step API; runs a step as appropriate for this flavor."""
- path_to_app = self._skia_api.skia_out.join(
- self._skia_api.configuration, cmd[0])
- if (self._skia_api.m.platform.is_linux and
- 'x86_64' in self._skia_api.builder_name and
- not 'TSAN' in self._skia_api.builder_name):
+ path_to_app = self.m.vars.skia_out.join(
+ self.m.vars.configuration, cmd[0])
+ if (self.m.platform.is_linux and
+ 'x86_64' in self.m.vars.builder_name and
+ not 'TSAN' in self.m.vars.builder_name):
new_cmd = ['catchsegv', path_to_app]
else:
new_cmd = [path_to_app]
new_cmd.extend(cmd[1:])
- return self._skia_api.run(self._skia_api.m.step,
+ return self.m.run(self.m.step,
name, cmd=new_cmd, **kwargs)
@property
@@ -97,11 +100,11 @@ class DefaultFlavorUtils(object):
def bootstrap_win_toolchain(self):
"""Run bootstrapping script for the Windows toolchain."""
- bootstrap_script = self._skia_api.infrabots_dir.join(
+ bootstrap_script = self.m.vars.infrabots_dir.join(
'bootstrap_win_toolchain_json.py')
win_toolchain_json = self._win_toolchain_dir.join(
'src', 'build', 'win_toolchain.json')
- self._skia_api.m.python(
+ self.m.python(
'bootstrap win toolchain',
script=bootstrap_script,
args=['--win_toolchain_json', win_toolchain_json,
@@ -110,13 +113,13 @@ class DefaultFlavorUtils(object):
def build_command_buffer(self):
"""Build command_buffer."""
- script = self._skia_api.skia_dir.join('tools', 'build_command_buffer.py')
- self._skia_api.run(
- self._skia_api.m.python, 'build command_buffer',
+ script = self.m.vars.skia_dir.join('tools', 'build_command_buffer.py')
+ self.m.run(
+ self.m.python, 'build command_buffer',
script=script,
- args=['--chrome-dir', self._skia_api.checkout_root,
+ args=['--chrome-dir', self.m.vars.checkout_root,
'--output-dir', self.out_dir,
- '--chrome-build-type', self._skia_api.configuration,
+ '--chrome-build-type', self.m.vars.configuration,
'--no-sync'])
def compile(self, target):
@@ -124,56 +127,52 @@ class DefaultFlavorUtils(object):
# The CHROME_PATH environment variable is needed for builders that use
# toolchains downloaded by Chrome.
env = {'CHROME_PATH': self.chrome_path}
- if self._skia_api.m.platform.is_win:
+ if self.m.platform.is_win:
make_cmd = ['python', 'make.py']
- self._skia_api._run_once(self.bootstrap_win_toolchain)
- if 'Vulkan' in self._skia_api.builder_name:
- env['VK_SDK_PATH'] = self._skia_api.slave_dir.join('win_vulkan_sdk')
- if not self._skia_api.m.path.exists(self._skia_api.infrabots_dir.join(
- 'assets', 'win_vulkan_sdk', 'VERSION')):
- # TODO(kjlubick): Remove this once enough time has passed.
- env['VK_SDK_PATH'] = self._skia_api.slave_dir.join('vulkan_1.0.17.0')
+ self.m.run.run_once(self.bootstrap_win_toolchain)
+ if 'Vulkan' in self.m.vars.builder_name:
+ env['VK_SDK_PATH'] = self.m.vars.slave_dir.join('win_vulkan_sdk')
else:
make_cmd = ['make']
cmd = make_cmd + [target]
try:
- self._skia_api.run(self._skia_api.m.step, 'build %s' % target, cmd=cmd,
- env=env, cwd=self._skia_api.m.path['checkout'])
- except self._skia_api.m.step.StepFailure:
- if self._skia_api.m.platform.is_win:
+ self.m.run(self.m.step, 'build %s' % target, cmd=cmd,
+ env=env, cwd=self.m.path['checkout'])
+ except self.m.step.StepFailure:
+ if self.m.platform.is_win:
# The linker occasionally crashes on Windows. Try again.
- self._skia_api.run(self._skia_api.m.step, 'build %s' % target, cmd=cmd,
- env=env, cwd=self._skia_api.m.path['checkout'])
+ self.m.run(self.m.step, 'build %s' % target, cmd=cmd,
+ env=env, cwd=self.m.path['checkout'])
else:
raise
- if 'CommandBuffer' in self._skia_api.builder_name:
- self._skia_api._run_once(self.build_command_buffer)
+ if 'CommandBuffer' in self.m.vars.builder_name:
+ self.m.run.run_once(self.build_command_buffer)
def copy_extra_build_products(self, swarming_out_dir):
"""Copy extra build products to specified directory.
Copy flavor-specific build products to swarming_out_dir for use in test and
perf steps."""
- if ("Win" in self._skia_api.builder_name and
- "Vulkan" in self._skia_api.builder_name):
+ if ("Win" in self.m.vars.builder_name and
+ "Vulkan" in self.m.vars.builder_name):
# This copies vulkan-1.dll that has been bundled into win_vulkan_sdk
# since version 2 See skia/api BUILD_PRODUCTS_ISOLATE_WHITELIST
- self._skia_api.copy_build_products(
- self._skia_api.m.path['slave_build'].join('win_vulkan_sdk'),
- swarming_out_dir)
+ self.m.run.copy_build_products(
+ self.m.path['slave_build'].join('win_vulkan_sdk'),
+ swarming_out_dir)
@property
def out_dir(self):
"""Flavor-specific out directory."""
- return self._skia_api.skia_out.join(self._skia_api.configuration)
+ return self.m.vars.skia_out.join(self.m.vars.configuration)
def device_path_join(self, *args):
"""Like os.path.join(), but for paths on a connected device."""
- return self._skia_api.m.path.join(*args)
+ return self.m.path.join(*args)
def device_path_exists(self, path): # pragma: no cover
"""Like os.path.exists(), but for paths on a connected device."""
- return self._skia_api.m.path.exists(path, infra_step=True)
+ return self.m.path.exists(path, infra_step=True)
def copy_directory_contents_to_device(self, host_dir, device_dir):
"""Like shutil.copytree(), but for copying to a connected device."""
@@ -211,32 +210,23 @@ class DefaultFlavorUtils(object):
def create_clean_host_dir(self, path):
"""Convenience function for creating a clean directory."""
- self._skia_api.rmtree(path)
- self._skia_api.m.file.makedirs(
- self._skia_api.m.path.basename(path), path, infra_step=True)
+ self.m.run.rmtree(path)
+ self.m.file.makedirs(
+ self.m.path.basename(path), path, infra_step=True)
def install(self):
"""Run device-specific installation steps."""
- pass
+ self.device_dirs = DeviceDirs(
+ dm_dir=self.m.vars.dm_dir,
+ perf_data_dir=self.m.vars.perf_data_dir,
+ resource_dir=self.m.vars.resource_dir,
+ images_dir=self.m.vars.images_dir,
+ skp_dir=self.m.vars.local_skp_dir,
+ tmp_dir=self.m.vars.tmp_dir)
def cleanup_steps(self):
"""Run any device-specific cleanup steps."""
pass
- def get_device_dirs(self):
- """ Set the directories which will be used by the build steps.
-
- These refer to paths on the same device where the test executables will
- run, for example, for Android bots these are paths on the Android device
- itself. For desktop bots, these are just local paths.
- """
- return DeviceDirs(
- dm_dir=self._skia_api.dm_dir,
- perf_data_dir=self._skia_api.perf_data_dir,
- resource_dir=self._skia_api.resource_dir,
- images_dir=self._skia_api.images_dir,
- skp_dir=self._skia_api.local_skp_dir,
- tmp_dir=self._skia_api.tmp_dir)
-
def __repr__(self):
return '<%s object>' % self.__class__.__name__ # pragma: no cover
« no previous file with comments | « infra/bots/recipe_modules/flavor/coverage_flavor.py ('k') | infra/bots/recipe_modules/flavor/gn_flavor.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698