882115da6b
Bug: skia:9675 Change-Id: Ie9fcd38a4d6c1e369bb2c3740de664a87d1a322c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/256660 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com> Commit-Queue: Eric Boren <borenet@google.com>
119 lines
4.0 KiB
Python
119 lines
4.0 KiB
Python
# Copyright 2016 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
|
|
# pylint: disable=W0201
|
|
|
|
|
|
from recipe_engine import recipe_api
|
|
|
|
|
|
CONFIG_DEBUG = 'Debug'
|
|
CONFIG_RELEASE = 'Release'
|
|
|
|
|
|
class SkiaVarsApi(recipe_api.RecipeApi):
|
|
|
|
def setup(self):
|
|
"""Prepare the variables."""
|
|
# Hack start_dir to remove the "k" directory which is added by Kitchen.
|
|
# Otherwise, we can't get to the CIPD packages, caches, and isolates which
|
|
# were put into the task workdir.
|
|
if self.m.path.c.base_paths['start_dir'][-1] == 'k': # pragma: nocover
|
|
self.m.path.c.base_paths['start_dir'] = (
|
|
self.m.path.c.base_paths['start_dir'][:-1])
|
|
|
|
# Setup
|
|
self.builder_name = self.m.properties['buildername']
|
|
|
|
self.slave_dir = self.m.path['start_dir']
|
|
|
|
# Special input/output directories.
|
|
self.build_dir = self.slave_dir.join('build')
|
|
|
|
self.default_env = self.m.context.env
|
|
self.default_env['CHROME_HEADLESS'] = '1'
|
|
self.default_env['PATH'] = self.m.path.pathsep.join([
|
|
self.default_env.get('PATH', '%(PATH)s'),
|
|
str(self.m.bot_update.repo_resource()),
|
|
])
|
|
self.cache_dir = self.slave_dir.join('cache')
|
|
|
|
self.swarming_out_dir = self.slave_dir.join(
|
|
self.m.properties.get('swarm_out_dir', 'tmp'))
|
|
|
|
self.tmp_dir = self.m.path['start_dir'].join('tmp')
|
|
|
|
self.builder_cfg = self.m.builder_name_schema.DictForBuilderName(
|
|
self.builder_name)
|
|
self.role = self.builder_cfg['role']
|
|
if self.role == self.m.builder_name_schema.BUILDER_ROLE_HOUSEKEEPER:
|
|
self.configuration = CONFIG_RELEASE
|
|
else:
|
|
self.configuration = self.builder_cfg.get('configuration', CONFIG_DEBUG)
|
|
arch = (self.builder_cfg.get('arch') or self.builder_cfg.get('target_arch'))
|
|
if ('Win' in self.builder_cfg.get('os', '') and arch == 'x86_64'):
|
|
self.configuration += '_x64'
|
|
|
|
self.extra_tokens = []
|
|
if len(self.builder_cfg.get('extra_config', '')) > 0:
|
|
if self.builder_cfg['extra_config'].startswith('SK'):
|
|
assert self.builder_cfg['extra_config'].isupper()
|
|
self.extra_tokens = [self.builder_cfg['extra_config']]
|
|
else:
|
|
self.extra_tokens = self.builder_cfg['extra_config'].split('_')
|
|
|
|
self.patch_storage = self.m.properties.get('patch_storage', 'gerrit')
|
|
self.issue = None
|
|
self.patchset = None
|
|
self.is_trybot = False
|
|
if (self.m.properties.get('patch_issue', '') and
|
|
self.m.properties['patch_issue'] != '0' and
|
|
self.m.properties.get('patch_set', '') and
|
|
self.m.properties['patch_set'] != '0' and
|
|
self.m.properties.get('patch_ref', '')):
|
|
self.is_trybot = True
|
|
self.issue = self.m.properties['patch_issue']
|
|
self.patchset = self.m.properties['patch_set']
|
|
|
|
self._swarming_bot_id = None
|
|
self._swarming_task_id = None
|
|
|
|
# Internal bot support.
|
|
self.internal_hardware_label = (
|
|
self.m.properties.get('internal_hardware_label'))
|
|
self.is_internal_bot = self.internal_hardware_label is not None
|
|
|
|
@property
|
|
def is_linux(self):
|
|
return (
|
|
'Ubuntu' in self.builder_name
|
|
or 'Debian' in self.builder_name
|
|
or 'Housekeeper' in self.builder_name
|
|
)
|
|
|
|
@property
|
|
def swarming_bot_id(self):
|
|
if not self._swarming_bot_id:
|
|
step_stdout = self.m.python.inline(
|
|
name='get swarming bot id',
|
|
program='''import os
|
|
print os.environ.get('SWARMING_BOT_ID', '')
|
|
''',
|
|
stdout=self.m.raw_io.output()).stdout
|
|
self._swarming_bot_id = step_stdout.rstrip() if step_stdout else ''
|
|
return self._swarming_bot_id
|
|
|
|
@property
|
|
def swarming_task_id(self):
|
|
if not self._swarming_task_id:
|
|
step_stdout = self.m.python.inline(
|
|
name='get swarming task id',
|
|
program='''import os
|
|
print os.environ.get('SWARMING_TASK_ID', '')
|
|
''',
|
|
stdout=self.m.raw_io.output()).stdout
|
|
self._swarming_task_id = step_stdout.rstrip() if step_stdout else ''
|
|
return self._swarming_task_id
|