Copy modules back in from skia-recipes repo
BUG=skia:6070 Change-Id: I86b3f039c27bd8287516c1db8bd1cae62888171b Reviewed-on: https://skia-review.googlesource.com/7890 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Eric Boren <borenet@google.com>
This commit is contained in:
parent
8233fc82b0
commit
7e97dc0aa1
@ -627,7 +627,7 @@ func main() {
|
|||||||
loadJson(cfgFile, path.Join(infraBots, "cfg.json"), &CONFIG)
|
loadJson(cfgFile, path.Join(infraBots, "cfg.json"), &CONFIG)
|
||||||
|
|
||||||
// Create the JobNameSchema.
|
// Create the JobNameSchema.
|
||||||
schema, err := NewJobNameSchema(path.Join(b.CheckoutRoot(), "infra", "bots", ".recipe_deps", "skia-recipes", "recipe_modules", "builder_name_schema", "builder_name_schema.json"))
|
schema, err := NewJobNameSchema(path.Join(b.CheckoutRoot(), "infra", "bots", "recipe_modules", "builder_name_schema", "builder_name_schema.json"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatal(err)
|
glog.Fatal(err)
|
||||||
}
|
}
|
||||||
|
11
infra/bots/recipe_modules/README.md
Normal file
11
infra/bots/recipe_modules/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Skia Recipe Modules
|
||||||
|
===================
|
||||||
|
|
||||||
|
This directory contains recipe modules designed to be used by recipes. They
|
||||||
|
are all Skia-specific and some are interrelated:
|
||||||
|
|
||||||
|
* vars - Common variables used by Skia recipes.
|
||||||
|
* run - Utilities for running commands. Depends on vars.
|
||||||
|
* flavor - Run meta-commands for various platforms. Depends on vars and run.
|
||||||
|
* skia - Main module for Skia recipes. Depends on vars, run, and flavor.
|
||||||
|
* swarming - Utilities for running Swarming tasks.
|
@ -0,0 +1,6 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
]
|
39
infra/bots/recipe_modules/builder_name_schema/api.py
Normal file
39
infra/bots/recipe_modules/builder_name_schema/api.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
from . import builder_name_schema
|
||||||
|
|
||||||
|
|
||||||
|
class BuilderNameSchemaApi(recipe_api.RecipeApi):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(BuilderNameSchemaApi, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
# See builder_name_schema.py for documentation.
|
||||||
|
self.BUILDER_NAME_SCHEMA = builder_name_schema.BUILDER_NAME_SCHEMA
|
||||||
|
self.BUILDER_NAME_SEP = builder_name_schema.BUILDER_NAME_SEP
|
||||||
|
|
||||||
|
self.BUILDER_ROLE_CANARY = builder_name_schema.BUILDER_ROLE_CANARY
|
||||||
|
self.BUILDER_ROLE_BUILD = builder_name_schema.BUILDER_ROLE_BUILD
|
||||||
|
self.BUILDER_ROLE_HOUSEKEEPER = builder_name_schema.BUILDER_ROLE_HOUSEKEEPER
|
||||||
|
self.BUILDER_ROLE_INFRA = builder_name_schema.BUILDER_ROLE_INFRA
|
||||||
|
self.BUILDER_ROLE_PERF = builder_name_schema.BUILDER_ROLE_PERF
|
||||||
|
self.BUILDER_ROLE_TEST = builder_name_schema.BUILDER_ROLE_TEST
|
||||||
|
self.BUILDER_ROLES = builder_name_schema.BUILDER_ROLES
|
||||||
|
|
||||||
|
self.TRYBOT_NAME_SUFFIX = builder_name_schema.TRYBOT_NAME_SUFFIX
|
||||||
|
|
||||||
|
def MakeBuilderName(self, *args, **kwargs): # pragma: no cover
|
||||||
|
return builder_name_schema.MakeBuilderName(*args, **kwargs)
|
||||||
|
|
||||||
|
def IsTrybot(self, *args, **kwargs): # pragma: no cover
|
||||||
|
return builder_name_schema.IsTrybot(*args, **kwargs)
|
||||||
|
|
||||||
|
def DictForBuilderName(self, *args, **kwargs):
|
||||||
|
return builder_name_schema.DictForBuilderName(*args, **kwargs)
|
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"builder_name_schema": {
|
||||||
|
"Test": [
|
||||||
|
"os",
|
||||||
|
"compiler",
|
||||||
|
"model",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"arch",
|
||||||
|
"configuration"
|
||||||
|
],
|
||||||
|
"Housekeeper": [
|
||||||
|
"frequency"
|
||||||
|
],
|
||||||
|
"Infra": [
|
||||||
|
"frequency"
|
||||||
|
],
|
||||||
|
"Build": [
|
||||||
|
"os",
|
||||||
|
"compiler",
|
||||||
|
"target_arch",
|
||||||
|
"configuration"
|
||||||
|
],
|
||||||
|
"Perf": [
|
||||||
|
"os",
|
||||||
|
"compiler",
|
||||||
|
"model",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"arch",
|
||||||
|
"configuration"
|
||||||
|
],
|
||||||
|
"Canary": [
|
||||||
|
"project",
|
||||||
|
"os",
|
||||||
|
"compiler",
|
||||||
|
"target_arch",
|
||||||
|
"configuration"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"builder_name_sep": "-",
|
||||||
|
"trybot_name_suffix": "Trybot"
|
||||||
|
}
|
@ -0,0 +1,168 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
|
||||||
|
""" Utilities for dealing with builder names. This module obtains its attributes
|
||||||
|
dynamically from builder_name_schema.json. """
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
# All of these global variables are filled in by _LoadSchema().
|
||||||
|
|
||||||
|
# The full schema.
|
||||||
|
BUILDER_NAME_SCHEMA = None
|
||||||
|
|
||||||
|
# Character which separates parts of a builder name.
|
||||||
|
BUILDER_NAME_SEP = None
|
||||||
|
|
||||||
|
# Builder roles.
|
||||||
|
BUILDER_ROLE_CANARY = 'Canary'
|
||||||
|
BUILDER_ROLE_BUILD = 'Build'
|
||||||
|
BUILDER_ROLE_HOUSEKEEPER = 'Housekeeper'
|
||||||
|
BUILDER_ROLE_INFRA = 'Infra'
|
||||||
|
BUILDER_ROLE_PERF = 'Perf'
|
||||||
|
BUILDER_ROLE_TEST = 'Test'
|
||||||
|
BUILDER_ROLES = (BUILDER_ROLE_CANARY,
|
||||||
|
BUILDER_ROLE_BUILD,
|
||||||
|
BUILDER_ROLE_HOUSEKEEPER,
|
||||||
|
BUILDER_ROLE_INFRA,
|
||||||
|
BUILDER_ROLE_PERF,
|
||||||
|
BUILDER_ROLE_TEST)
|
||||||
|
|
||||||
|
# Suffix which distinguishes trybots from normal bots.
|
||||||
|
TRYBOT_NAME_SUFFIX = None
|
||||||
|
|
||||||
|
|
||||||
|
def _LoadSchema():
|
||||||
|
""" Load the builder naming schema from the JSON file. """
|
||||||
|
|
||||||
|
def _UnicodeToStr(obj):
|
||||||
|
""" Convert all unicode strings in obj to Python strings. """
|
||||||
|
if isinstance(obj, unicode):
|
||||||
|
return str(obj)
|
||||||
|
elif isinstance(obj, dict):
|
||||||
|
return dict(map(_UnicodeToStr, obj.iteritems()))
|
||||||
|
elif isinstance(obj, list):
|
||||||
|
return list(map(_UnicodeToStr, obj))
|
||||||
|
elif isinstance(obj, tuple):
|
||||||
|
return tuple(map(_UnicodeToStr, obj))
|
||||||
|
else:
|
||||||
|
return obj # pragma: no cover
|
||||||
|
|
||||||
|
builder_name_json_filename = os.path.join(
|
||||||
|
os.path.dirname(__file__), 'builder_name_schema.json')
|
||||||
|
builder_name_schema_json = json.load(open(builder_name_json_filename))
|
||||||
|
|
||||||
|
global BUILDER_NAME_SCHEMA
|
||||||
|
BUILDER_NAME_SCHEMA = _UnicodeToStr(
|
||||||
|
builder_name_schema_json['builder_name_schema'])
|
||||||
|
|
||||||
|
global BUILDER_NAME_SEP
|
||||||
|
BUILDER_NAME_SEP = _UnicodeToStr(
|
||||||
|
builder_name_schema_json['builder_name_sep'])
|
||||||
|
|
||||||
|
global TRYBOT_NAME_SUFFIX
|
||||||
|
TRYBOT_NAME_SUFFIX = _UnicodeToStr(
|
||||||
|
builder_name_schema_json['trybot_name_suffix'])
|
||||||
|
|
||||||
|
# Since the builder roles are dictionary keys, just assert that the global
|
||||||
|
# variables above account for all of them.
|
||||||
|
assert len(BUILDER_ROLES) == len(BUILDER_NAME_SCHEMA)
|
||||||
|
for role in BUILDER_ROLES:
|
||||||
|
assert role in BUILDER_NAME_SCHEMA
|
||||||
|
|
||||||
|
|
||||||
|
_LoadSchema()
|
||||||
|
|
||||||
|
|
||||||
|
def MakeBuilderName(role, extra_config=None, is_trybot=False,
|
||||||
|
**kwargs): # pragma: no cover
|
||||||
|
schema = BUILDER_NAME_SCHEMA.get(role)
|
||||||
|
if not schema: # pragma: no cover
|
||||||
|
raise ValueError('%s is not a recognized role.' % role)
|
||||||
|
for k, v in kwargs.iteritems():
|
||||||
|
if BUILDER_NAME_SEP in v: # pragma: no cover
|
||||||
|
raise ValueError('%s not allowed in %s.' % (BUILDER_NAME_SEP, v))
|
||||||
|
if not k in schema: # pragma: no cover
|
||||||
|
raise ValueError('Schema does not contain "%s": %s' %(k, schema))
|
||||||
|
if extra_config and BUILDER_NAME_SEP in extra_config: # pragma: no cover
|
||||||
|
raise ValueError('%s not allowed in %s.' % (BUILDER_NAME_SEP,
|
||||||
|
extra_config))
|
||||||
|
name_parts = [role]
|
||||||
|
name_parts.extend([kwargs[attribute] for attribute in schema])
|
||||||
|
if extra_config:
|
||||||
|
name_parts.append(extra_config)
|
||||||
|
if is_trybot:
|
||||||
|
name_parts.append(TRYBOT_NAME_SUFFIX)
|
||||||
|
return BUILDER_NAME_SEP.join(name_parts)
|
||||||
|
|
||||||
|
|
||||||
|
def IsTrybot(builder_name): # pragma: no cover
|
||||||
|
""" Returns true if builder_name refers to a trybot (as opposed to a
|
||||||
|
waterfall bot). """
|
||||||
|
return builder_name.endswith(TRYBOT_NAME_SUFFIX)
|
||||||
|
|
||||||
|
|
||||||
|
def GetWaterfallBot(builder_name): # pragma: no cover
|
||||||
|
"""Returns the name of the waterfall bot for this builder. If it is not a
|
||||||
|
trybot, builder_name is returned unchanged. If it is a trybot the name is
|
||||||
|
returned without the trybot suffix."""
|
||||||
|
if not IsTrybot(builder_name):
|
||||||
|
return builder_name
|
||||||
|
return _WithoutSuffix(builder_name, BUILDER_NAME_SEP + TRYBOT_NAME_SUFFIX)
|
||||||
|
|
||||||
|
|
||||||
|
def TrybotName(builder_name): # pragma: no cover
|
||||||
|
"""Returns the name of the trybot clone of this builder.
|
||||||
|
|
||||||
|
If the given builder is a trybot, the name is returned unchanged. If not, the
|
||||||
|
TRYBOT_NAME_SUFFIX is appended.
|
||||||
|
"""
|
||||||
|
if builder_name.endswith(TRYBOT_NAME_SUFFIX):
|
||||||
|
return builder_name
|
||||||
|
return builder_name + BUILDER_NAME_SEP + TRYBOT_NAME_SUFFIX
|
||||||
|
|
||||||
|
|
||||||
|
def _WithoutSuffix(string, suffix): # pragma: no cover
|
||||||
|
""" Returns a copy of string 'string', but with suffix 'suffix' removed.
|
||||||
|
Raises ValueError if string does not end with suffix. """
|
||||||
|
if not string.endswith(suffix):
|
||||||
|
raise ValueError('_WithoutSuffix: string %s does not end with suffix %s' % (
|
||||||
|
string, suffix))
|
||||||
|
return string[:-len(suffix)]
|
||||||
|
|
||||||
|
|
||||||
|
def DictForBuilderName(builder_name):
|
||||||
|
"""Makes a dictionary containing details about the builder from its name."""
|
||||||
|
split_name = builder_name.split(BUILDER_NAME_SEP)
|
||||||
|
|
||||||
|
def pop_front():
|
||||||
|
try:
|
||||||
|
return split_name.pop(0)
|
||||||
|
except: # pragma: no cover
|
||||||
|
raise ValueError('Invalid builder name: %s' % builder_name)
|
||||||
|
|
||||||
|
result = {'is_trybot': False}
|
||||||
|
|
||||||
|
if split_name[-1] == TRYBOT_NAME_SUFFIX:
|
||||||
|
result['is_trybot'] = True
|
||||||
|
split_name.pop()
|
||||||
|
|
||||||
|
if split_name[0] in BUILDER_NAME_SCHEMA.keys():
|
||||||
|
key_list = BUILDER_NAME_SCHEMA[split_name[0]]
|
||||||
|
result['role'] = pop_front()
|
||||||
|
for key in key_list:
|
||||||
|
result[key] = pop_front()
|
||||||
|
if split_name:
|
||||||
|
result['extra_config'] = pop_front()
|
||||||
|
if split_name: # pragma: no cover
|
||||||
|
raise ValueError('Invalid builder name: %s' % builder_name)
|
||||||
|
else: # pragma: no cover
|
||||||
|
raise ValueError('Invalid builder name: %s' % builder_name)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
15
infra/bots/recipe_modules/compile/__init__.py
Normal file
15
infra/bots/recipe_modules/compile/__init__.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Copyright 2017 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'core',
|
||||||
|
'recipe_engine/json',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'flavor',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
81
infra/bots/recipe_modules/compile/api.py
Normal file
81
infra/bots/recipe_modules/compile/api.py
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Recipe module for Skia Swarming compile.
|
||||||
|
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
|
||||||
|
def build_targets_from_builder_dict(builder_dict):
|
||||||
|
"""Return a list of targets to build, depending on the builder type."""
|
||||||
|
if builder_dict.get('extra_config') == 'iOS':
|
||||||
|
return ['iOSShell']
|
||||||
|
return ['most']
|
||||||
|
|
||||||
|
|
||||||
|
def get_extra_env_vars(builder_dict):
|
||||||
|
env = {}
|
||||||
|
if builder_dict.get('compiler') == 'Clang':
|
||||||
|
env['CC'] = '/usr/bin/clang'
|
||||||
|
env['CXX'] = '/usr/bin/clang++'
|
||||||
|
|
||||||
|
# SKNX_NO_SIMD, SK_USE_DISCARDABLE_SCALEDIMAGECACHE, etc.
|
||||||
|
extra_config = builder_dict.get('extra_config', '')
|
||||||
|
if extra_config.startswith('SK') and extra_config.isupper():
|
||||||
|
env['CPPFLAGS'] = '-D' + extra_config
|
||||||
|
|
||||||
|
return env
|
||||||
|
|
||||||
|
|
||||||
|
def get_gyp_defines(builder_dict):
|
||||||
|
gyp_defs = {}
|
||||||
|
|
||||||
|
if (builder_dict.get('os') == 'iOS' or
|
||||||
|
builder_dict.get('extra_config') == 'iOS'):
|
||||||
|
gyp_defs['skia_arch_type'] = 'arm'
|
||||||
|
gyp_defs['skia_clang_build'] = '1'
|
||||||
|
gyp_defs['skia_os'] = 'ios'
|
||||||
|
gyp_defs['skia_warnings_as_errors'] = 1
|
||||||
|
|
||||||
|
return gyp_defs
|
||||||
|
|
||||||
|
|
||||||
|
class CompileApi(recipe_api.RecipeApi):
|
||||||
|
def run(self):
|
||||||
|
self.m.core.setup()
|
||||||
|
|
||||||
|
env = get_extra_env_vars(self.m.vars.builder_cfg)
|
||||||
|
gyp_defs = get_gyp_defines(self.m.vars.builder_cfg)
|
||||||
|
gyp_defs_list = ['%s=%s' % (k, v) for k, v in gyp_defs.iteritems()]
|
||||||
|
gyp_defs_list.sort()
|
||||||
|
env['GYP_DEFINES'] = ' '.join(gyp_defs_list)
|
||||||
|
|
||||||
|
build_targets = build_targets_from_builder_dict(self.m.vars.builder_cfg)
|
||||||
|
|
||||||
|
try:
|
||||||
|
for target in build_targets:
|
||||||
|
self.m.flavor.compile(target, env=env)
|
||||||
|
self.m.run.copy_build_products(
|
||||||
|
self.m.flavor.out_dir,
|
||||||
|
self.m.vars.swarming_out_dir.join(
|
||||||
|
'out', self.m.vars.configuration))
|
||||||
|
self.m.flavor.copy_extra_build_products(self.m.vars.swarming_out_dir)
|
||||||
|
finally:
|
||||||
|
if 'Win' in self.m.vars.builder_cfg.get('os', ''):
|
||||||
|
self.m.python.inline(
|
||||||
|
name='cleanup',
|
||||||
|
program='''import psutil
|
||||||
|
for p in psutil.process_iter():
|
||||||
|
try:
|
||||||
|
if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):
|
||||||
|
p.kill()
|
||||||
|
except psutil._error.AccessDenied:
|
||||||
|
pass
|
||||||
|
''',
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
self.m.flavor.cleanup_steps()
|
||||||
|
self.m.run.check_failure()
|
@ -0,0 +1,173 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-Arm7-Release-iOS"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/platform_tools/ios/bin/ios_ninja"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CC": "/usr/bin/clang",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CXX": "/usr/bin/clang++",
|
||||||
|
"GYP_DEFINES": "skia_arch_type=arm skia_clang_build=1 skia_os=ios skia_warnings_as_errors=1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-Arm7-Release-iOS"
|
||||||
|
},
|
||||||
|
"name": "build iOSShell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-Arm7-Release-iOS/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/xcodebuild/Release-iphoneos",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/xcodebuild/Release-iphoneos"
|
||||||
|
],
|
||||||
|
"name": "copy build products (2)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug",
|
||||||
|
"--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] target_cpu=\"arm64\" target_os=\"ios\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-mipsel-Debug-GN_Android"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-mipsel-Debug-GN_Android/Debug",
|
||||||
|
"--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_darwin\" target_cpu=\"mipsel\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-mipsel-Debug-GN_Android/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-mipsel-Debug-GN_Android/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,194 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}, {'deps_file': '.DEPS.git', 'managed': False, 'name': 'src', 'url': 'https://chromium.googlesource.com/chromium/src.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--revision",
|
||||||
|
"src@origin/lkgr",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"src\": \"origin/lkgr\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
|
||||||
|
"runhooks"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"GYP_CHROMIUM_NO_ACTION": "0",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gclient runhooks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/tools/build_command_buffer.py",
|
||||||
|
"--chrome-dir",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"--output-dir",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
|
||||||
|
"--no-sync",
|
||||||
|
"--make-output-dir"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer"
|
||||||
|
},
|
||||||
|
"name": "build command_buffer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
|
||||||
|
"--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Debug-CommandBuffer/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Release-GN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Release-GN/Release",
|
||||||
|
"--args=cc=\"clang\" cxx=\"clang++\" is_debug=false target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Release-GN/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-x86_64-Release-GN/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,163 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--issue",
|
||||||
|
"500",
|
||||||
|
"--patchset",
|
||||||
|
"1",
|
||||||
|
"--rietveld_server",
|
||||||
|
"https://codereview.chromium.org",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot/Debug",
|
||||||
|
"--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"arm64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs/Debug",
|
||||||
|
"--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_linux\" skia_enable_android_framework_defines=true target_cpu=\"arm64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android/Release",
|
||||||
|
"--args=is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"arm64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android_Vulkan"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android_Vulkan/Release",
|
||||||
|
"--args=is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" ndk_api=24 skia_enable_vulkan_debug_layers=false target_cpu=\"arm64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android_Vulkan/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-arm64-Release-GN_Android_Vulkan/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-ASAN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-ASAN/Debug",
|
||||||
|
"--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-O1\"] extra_ldflags=[\"-fuse-ld=lld\"] sanitize=\"ASAN\" target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-ASAN/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-ASAN/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug",
|
||||||
|
"--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_cflags=[\"-O1\"] extra_ldflags=[\"-fuse-ld=lld\"] target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Debug-GN/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Release-Vulkan"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Release-Vulkan/Release",
|
||||||
|
"--args=cc=\"[START_DIR]/clang_linux/bin/clang\" cxx=\"[START_DIR]/clang_linux/bin/clang++\" extra_ldflags=[\"-fuse-ld=lld\"] is_debug=false skia_vulkan_sdk=\"[START_DIR]/linux_vulkan_sdk\" target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Release-Vulkan/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-Clang-x86_64-Release-Vulkan/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86-Debug"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86-Debug/Debug",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] target_cpu=\"x86\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86-Debug/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86-Debug/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN/Debug",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-GN/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-MSAN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-MSAN/Debug",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] extra_ldflags=[\"-L[START_DIR]/clang_linux/msan\"] sanitize=\"MSAN\" skia_use_fontconfig=false target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-MSAN/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-MSAN/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-NoGPU"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-NoGPU/Debug",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\"] skia_enable_gpu=false target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-NoGPU/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-NoGPU/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-O1\", \"-DSK_USE_DISCARDABLE_SCALEDIMAGECACHE\"] target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE/Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-ANGLE"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-ANGLE/Release",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_use_angle=true target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-ANGLE/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-ANGLE/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Fast"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Fast/Release",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" extra_cflags=[\"-march=native\", \"-fomit-frame-pointer\", \"-O3\", \"-ffp-contract=off\"] is_debug=false target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Fast/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Fast/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Mesa"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Mesa/Release",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" is_debug=false skia_use_mesa=true target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Mesa/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Mesa/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,198 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'pdfium', 'url': 'https://pdfium.googlesource.com/pdfium.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"pdfium/third_party/skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"pdfium\": \"got_pdfium_revision\", \"pdfium/third_party/skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"pdfium@origin/master",
|
||||||
|
"--revision",
|
||||||
|
"pdfium/third_party/skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": \"origin/master\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium/third_party/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"pdfium/third_party/skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision_cp\": \"refs/heads/master@{#52055}\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"pdfium\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision_cp@\"refs/heads/master@{#52055}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision@\"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gclient",
|
||||||
|
"runhook",
|
||||||
|
"gn_linux64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "runhook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"build/linux/sysroot_scripts/install-sysroot.py",
|
||||||
|
"--arch=amd64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "sysroot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gn",
|
||||||
|
"gen",
|
||||||
|
"out/skia",
|
||||||
|
"--args=pdf_is_standalone=true clang_use_chrome_plugins=false is_component_build=false is_debug=false pdf_use_skia=true"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "gn_gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"out/skia",
|
||||||
|
"-j100"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "build_pdfium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,198 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'pdfium', 'url': 'https://pdfium.googlesource.com/pdfium.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"pdfium/third_party/skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"pdfium\": \"got_pdfium_revision\", \"pdfium/third_party/skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"pdfium@origin/master",
|
||||||
|
"--revision",
|
||||||
|
"pdfium/third_party/skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": \"origin/master\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium/third_party/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"pdfium/third_party/skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision_cp\": \"refs/heads/master@{#52055}\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"pdfium\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision_cp@\"refs/heads/master@{#52055}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision@\"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gclient",
|
||||||
|
"runhook",
|
||||||
|
"gn_linux64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths"
|
||||||
|
},
|
||||||
|
"name": "runhook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"build/linux/sysroot_scripts/install-sysroot.py",
|
||||||
|
"--arch=amd64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths"
|
||||||
|
},
|
||||||
|
"name": "sysroot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gn",
|
||||||
|
"gen",
|
||||||
|
"out/skia",
|
||||||
|
"--args=pdf_is_standalone=true clang_use_chrome_plugins=false is_component_build=false is_debug=false pdf_use_skia_paths=true"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths"
|
||||||
|
},
|
||||||
|
"name": "gn_gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"out/skia",
|
||||||
|
"-j100"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths"
|
||||||
|
},
|
||||||
|
"name": "build_pdfium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,157 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Valgrind"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/bin/gn",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Valgrind/Release",
|
||||||
|
"--args=cc=\"gcc\" cxx=\"g++\" is_debug=false target_cpu=\"x86_64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Valgrind/Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/out/Build-Ubuntu-GCC-x86_64-Release-Valgrind/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-Clang-arm64-Release-GN_Android"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-Clang-arm64-Release-GN_Android\\Release",
|
||||||
|
"--args=is_debug=false ndk=\"[START_DIR]\\n\" target_cpu=\"arm64\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-Clang-arm64-Release-GN_Android\\Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-Clang-arm64-Release-GN_Android\\Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-ANGLE"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-ANGLE\\Debug",
|
||||||
|
"--args=skia_use_angle=true target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-ANGLE\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-ANGLE\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Exceptions"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Exceptions\\Debug",
|
||||||
|
"--args=extra_cflags=[\"/EHsc\"] target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Exceptions\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Exceptions\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"--args=target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GDI"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GDI\\Release",
|
||||||
|
"--args=is_debug=false skia_use_gdi=true target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GDI\\Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GDI\\Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,175 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GN"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GN\\Release",
|
||||||
|
"--args=is_debug=false target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GN\\Release"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Release-GN\\Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,212 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release_x64",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86_64-Release-Vulkan"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86_64-Release-Vulkan\\Release_x64",
|
||||||
|
"--args=is_debug=false skia_vulkan_sdk=\"[START_DIR]\\win_vulkan_sdk\" target_cpu=\"x86_64\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86_64-Release-Vulkan\\Release_x64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86_64-Release-Vulkan\\Release_x64",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Release_x64"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[START_DIR]\\win_vulkan_sdk",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Release_x64"
|
||||||
|
],
|
||||||
|
"name": "copy build products (2)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,212 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'other_repo', 'url': 'https://skia.googlesource.com/other_repo.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"other_repo",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"other_repo\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"other_repo@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release_x64",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"other_repo\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"other_repo\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/other_repo.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"84be67d5f1146c5b7f6d4494c36c52903754abf4\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"other_repo\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"84be67d5f1146c5b7f6d4494c36c52903754abf4\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#170933}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"other_repo\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"84be67d5f1146c5b7f6d4494c36c52903754abf4\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#170933}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]/skia/bin/fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]/skia/bin/gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64",
|
||||||
|
"--args=is_debug=false skia_vulkan_sdk=\"[START_DIR]/win_vulkan_sdk\" target_cpu=\"x86_64\" windk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release_x64"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[START_DIR]/win_vulkan_sdk",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release_x64"
|
||||||
|
],
|
||||||
|
"name": "copy build products (2)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,181 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--issue",
|
||||||
|
"2147533002",
|
||||||
|
"--patchset",
|
||||||
|
"1",
|
||||||
|
"--rietveld_server",
|
||||||
|
"https://codereview.chromium.org",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"--args=target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,201 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--gerrit_repo",
|
||||||
|
"https://skia.googlesource.com/skia.git",
|
||||||
|
"--gerrit_ref",
|
||||||
|
"refs/changes/89/456789/12",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]\\tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"--args=target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,203 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--issue",
|
||||||
|
"500",
|
||||||
|
"--patchset",
|
||||||
|
"1",
|
||||||
|
"--rietveld_server",
|
||||||
|
"https://codereview.chromium.org",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]\\tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"--args=target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,202 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'pdfium', 'url': 'https://pdfium.googlesource.com/pdfium.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"pdfium/third_party/skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"pdfium\": \"got_pdfium_revision\", \"pdfium/third_party/skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--gerrit_repo",
|
||||||
|
"https://skia.googlesource.com/skia.git",
|
||||||
|
"--gerrit_ref",
|
||||||
|
"refs/changes/89/456789/12",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"pdfium@origin/master",
|
||||||
|
"--revision",
|
||||||
|
"pdfium/third_party/skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": \"origin/master\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"pdfium/third_party/skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/pdfium/third_party/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"pdfium/third_party/skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision\": \"d69d97171c17fdb12a52f78847e2ee2f0594eff1\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_pdfium_revision_cp\": \"refs/heads/master@{#52055}\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"85501db4bcbeb8f295309fdcda1a743388f0f104\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"pdfium\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision_cp@\"refs/heads/master@{#52055}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"85501db4bcbeb8f295309fdcda1a743388f0f104\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#120212}\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_pdfium_revision@\"d69d97171c17fdb12a52f78847e2ee2f0594eff1\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gclient",
|
||||||
|
"runhook",
|
||||||
|
"gn_linux64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "runhook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"build/linux/sysroot_scripts/install-sysroot.py",
|
||||||
|
"--arch=amd64"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "sysroot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"gn",
|
||||||
|
"gen",
|
||||||
|
"out/skia",
|
||||||
|
"--args=pdf_is_standalone=true clang_use_chrome_plugins=false is_component_build=false is_debug=false pdf_use_skia=true"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "gn_gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja",
|
||||||
|
"-C",
|
||||||
|
"out/skia",
|
||||||
|
"-j100"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/pdfium",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"CHROMIUM_BUILDTOOLS_PATH": "[CUSTOM_/_B_WORK]/pdfium/buildtools",
|
||||||
|
"GYP_DEFINES": "",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium"
|
||||||
|
},
|
||||||
|
"name": "build_pdfium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]/pdfium/third_party/skia/out/Build-Ubuntu-GCC-x86_64-Release-PDFium/Release",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,201 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]\\resources\\bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_C:\\_B_CACHE]",
|
||||||
|
"--gerrit_repo",
|
||||||
|
"https://skia.googlesource.com/skia.git",
|
||||||
|
"--gerrit_ref",
|
||||||
|
"refs/changes/89/456789/12",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Trybot"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]\\tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\fetch-gn"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "fetch-gn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\bin\\gn.exe",
|
||||||
|
"gen",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Trybot\\Debug",
|
||||||
|
"--args=target_cpu=\"x86\" windk=\"[START_DIR]\\t\\depot_tools\\win_toolchain\\vs_files\\d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "gn gen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"ninja.exe",
|
||||||
|
"-C",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Trybot\\Debug"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_C:\\_B_WORK]\\skia",
|
||||||
|
"env": {
|
||||||
|
"PATH": "%(PATH)s;RECIPE_PACKAGE_REPO[depot_tools]"
|
||||||
|
},
|
||||||
|
"name": "ninja"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
|
||||||
|
"[CUSTOM_C:\\_B_WORK]\\skia\\out\\Build-Win-MSVC-x86-Debug-Trybot\\Debug",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\out\\Debug"
|
||||||
|
],
|
||||||
|
"name": "copy build products",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import psutil\nfor p in psutil.process_iter():\n try:\n if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n p.kill()\n except psutil._error.AccessDenied:\n pass\n"
|
||||||
|
],
|
||||||
|
"name": "cleanup",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import psutil@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p.kill()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ except psutil._error.AccessDenied:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ pass@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
214
infra/bots/recipe_modules/compile/example.py
Normal file
214
infra/bots/recipe_modules/compile/example.py
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Example recipe w/ coverage.
|
||||||
|
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'compile',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
TEST_BUILDERS = {
|
||||||
|
'client.skia.compile': {
|
||||||
|
'skiabot-linux-swarm-000': [
|
||||||
|
'Build-Mac-Clang-Arm7-Release-iOS',
|
||||||
|
'Build-Mac-Clang-arm64-Debug-GN_iOS',
|
||||||
|
'Build-Mac-Clang-mipsel-Debug-GN_Android',
|
||||||
|
'Build-Mac-Clang-x86_64-Debug-CommandBuffer',
|
||||||
|
'Build-Mac-Clang-x86_64-Release-GN',
|
||||||
|
'Build-Ubuntu-Clang-arm64-Debug-GN_Android-Trybot',
|
||||||
|
'Build-Ubuntu-Clang-arm64-Debug-GN_Android_FrameworkDefs',
|
||||||
|
'Build-Ubuntu-Clang-arm64-Release-GN_Android',
|
||||||
|
'Build-Ubuntu-Clang-arm64-Release-GN_Android_Vulkan',
|
||||||
|
'Build-Ubuntu-Clang-x86_64-Debug-ASAN',
|
||||||
|
'Build-Ubuntu-Clang-x86_64-Debug-GN',
|
||||||
|
'Build-Ubuntu-Clang-x86_64-Release-Vulkan',
|
||||||
|
'Build-Ubuntu-GCC-x86-Debug',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Debug-GN',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Debug-MSAN',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Debug-NoGPU',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Debug-SK_USE_DISCARDABLE_SCALEDIMAGECACHE',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-ANGLE',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-Fast',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-Mesa',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-PDFium',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths',
|
||||||
|
'Build-Ubuntu-GCC-x86_64-Release-Valgrind',
|
||||||
|
'Build-Win-Clang-arm64-Release-GN_Android',
|
||||||
|
'Build-Win-MSVC-x86-Debug',
|
||||||
|
'Build-Win-MSVC-x86-Debug-ANGLE',
|
||||||
|
'Build-Win-MSVC-x86-Debug-Exceptions',
|
||||||
|
'Build-Win-MSVC-x86-Release-GDI',
|
||||||
|
'Build-Win-MSVC-x86-Release-GN',
|
||||||
|
'Build-Win-MSVC-x86_64-Release-Vulkan',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def RunSteps(api):
|
||||||
|
api.compile.run()
|
||||||
|
|
||||||
|
|
||||||
|
def GenTests(api):
|
||||||
|
for mastername, slaves in TEST_BUILDERS.iteritems():
|
||||||
|
for slavename, builders_by_slave in slaves.iteritems():
|
||||||
|
for builder in builders_by_slave:
|
||||||
|
test = (
|
||||||
|
api.test(builder) +
|
||||||
|
api.properties(buildername=builder,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if 'Win' in builder:
|
||||||
|
test += api.platform('win', 64)
|
||||||
|
elif 'Mac' in builder:
|
||||||
|
test += api.platform('mac', 64)
|
||||||
|
else:
|
||||||
|
test += api.platform('linux', 64)
|
||||||
|
if 'Trybot' in builder:
|
||||||
|
test += api.properties(issue=500,
|
||||||
|
patchset=1,
|
||||||
|
rietveld='https://codereview.chromium.org')
|
||||||
|
|
||||||
|
yield test
|
||||||
|
|
||||||
|
mastername = 'client.skia.compile'
|
||||||
|
slavename = 'skiabot-win-compile-000'
|
||||||
|
buildername = 'Build-Win-MSVC-x86-Debug'
|
||||||
|
yield (
|
||||||
|
api.test('big_issue_number') +
|
||||||
|
api.properties(buildername=buildername,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
rietveld='https://codereview.chromium.org',
|
||||||
|
patchset=1,
|
||||||
|
issue=2147533002L) +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
) +
|
||||||
|
api.platform('win', 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
yield (
|
||||||
|
api.test('recipe_with_gerrit_patch') +
|
||||||
|
api.properties(
|
||||||
|
buildername=buildername + '-Trybot',
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
patch_storage='gerrit') +
|
||||||
|
api.properties.tryserver(
|
||||||
|
buildername=buildername + '-Trybot',
|
||||||
|
gerrit_project='skia',
|
||||||
|
gerrit_url='https://skia-review.googlesource.com/',
|
||||||
|
) +
|
||||||
|
api.platform('win', 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
yield (
|
||||||
|
api.test('buildbotless_trybot_rietveld') +
|
||||||
|
api.properties(
|
||||||
|
buildername=buildername,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
nobuildbot='True',
|
||||||
|
issue=500,
|
||||||
|
patchset=1,
|
||||||
|
patch_storage='rietveld',
|
||||||
|
rietveld='https://codereview.chromium.org') +
|
||||||
|
api.platform('win', 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
yield (
|
||||||
|
api.test('buildbotless_trybot_gerrit') +
|
||||||
|
api.properties(
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
buildername=buildername,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
revision='abc123',
|
||||||
|
nobuildbot='True',
|
||||||
|
patch_issue=500,
|
||||||
|
patch_set=1,
|
||||||
|
patch_storage='gerrit') +
|
||||||
|
api.properties.tryserver(
|
||||||
|
buildername=buildername,
|
||||||
|
gerrit_project='skia',
|
||||||
|
gerrit_url='https://skia-review.googlesource.com/',
|
||||||
|
) +
|
||||||
|
api.platform('win', 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
buildername = 'Build-Win-MSVC-x86_64-Release-Vulkan'
|
||||||
|
yield (
|
||||||
|
api.test('alternate_repo') +
|
||||||
|
api.properties(buildername=buildername,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/other_repo.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
buildername = 'Build-Ubuntu-GCC-x86_64-Release-PDFium'
|
||||||
|
yield (
|
||||||
|
api.test('pdfium_trybot') +
|
||||||
|
api.properties(
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
buildername=buildername,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
revision='abc123',
|
||||||
|
nobuildbot='True',
|
||||||
|
patch_issue=500,
|
||||||
|
patch_set=1,
|
||||||
|
patch_storage='gerrit') +
|
||||||
|
api.properties.tryserver(
|
||||||
|
buildername=buildername,
|
||||||
|
gerrit_project='skia',
|
||||||
|
gerrit_url='https://skia-review.googlesource.com/',
|
||||||
|
) +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
)
|
||||||
|
)
|
18
infra/bots/recipe_modules/core/__init__.py
Normal file
18
infra/bots/recipe_modules/core/__init__.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'depot_tools/bot_update',
|
||||||
|
'depot_tools/gclient',
|
||||||
|
'depot_tools/tryserver',
|
||||||
|
'flavor',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
150
infra/bots/recipe_modules/core/api.py
Normal file
150
infra/bots/recipe_modules/core/api.py
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
# Copyright 2014 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
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
from recipe_engine import config_types
|
||||||
|
|
||||||
|
|
||||||
|
class SkiaApi(recipe_api.RecipeApi):
|
||||||
|
|
||||||
|
def setup(self):
|
||||||
|
"""Prepare the bot to run."""
|
||||||
|
# Setup dependencies.
|
||||||
|
self.m.vars.setup()
|
||||||
|
|
||||||
|
# Check out the Skia code.
|
||||||
|
self.checkout_steps()
|
||||||
|
|
||||||
|
if not self.m.path.exists(self.m.vars.tmp_dir):
|
||||||
|
self.m.run.run_once(self.m.file.makedirs,
|
||||||
|
'tmp_dir',
|
||||||
|
self.m.vars.tmp_dir,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
self.m.flavor.setup()
|
||||||
|
|
||||||
|
def update_repo(self, parent_dir, repo):
|
||||||
|
"""Update an existing repo. This is safe to call without gen_steps."""
|
||||||
|
repo_path = parent_dir.join(repo.name)
|
||||||
|
if self.m.path.exists(repo_path): # pragma: nocover
|
||||||
|
if self.m.platform.is_win:
|
||||||
|
git = 'git.bat'
|
||||||
|
else:
|
||||||
|
git = 'git'
|
||||||
|
self.m.step('git remote set-url',
|
||||||
|
cmd=[git, 'remote', 'set-url', 'origin', repo.url],
|
||||||
|
cwd=repo_path,
|
||||||
|
infra_step=True)
|
||||||
|
self.m.step('git fetch',
|
||||||
|
cmd=[git, 'fetch'],
|
||||||
|
cwd=repo_path,
|
||||||
|
infra_step=True)
|
||||||
|
self.m.step('git reset',
|
||||||
|
cmd=[git, 'reset', '--hard', repo.revision],
|
||||||
|
cwd=repo_path,
|
||||||
|
infra_step=True)
|
||||||
|
self.m.step('git clean',
|
||||||
|
cmd=[git, 'clean', '-d', '-f'],
|
||||||
|
cwd=repo_path,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
def checkout_steps(self):
|
||||||
|
"""Run the steps to obtain a checkout of Skia."""
|
||||||
|
cfg_kwargs = {}
|
||||||
|
if not self.m.vars.persistent_checkout:
|
||||||
|
# We should've obtained the Skia checkout through isolates, so we don't
|
||||||
|
# need to perform the checkout ourselves.
|
||||||
|
return
|
||||||
|
|
||||||
|
# Use a persistent gclient cache for Swarming.
|
||||||
|
cfg_kwargs['CACHE_DIR'] = self.m.vars.gclient_cache
|
||||||
|
|
||||||
|
# Create the checkout path if necessary.
|
||||||
|
if not self.m.path.exists(self.m.vars.checkout_root):
|
||||||
|
self.m.file.makedirs('checkout_path',
|
||||||
|
self.m.vars.checkout_root,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
# Initial cleanup.
|
||||||
|
gclient_cfg = self.m.gclient.make_config(**cfg_kwargs)
|
||||||
|
main_repo = self.m.properties['repository']
|
||||||
|
if self.m.vars.need_pdfium_checkout:
|
||||||
|
main_repo = 'https://pdfium.googlesource.com/pdfium.git'
|
||||||
|
main_name = self.m.path.basename(main_repo)
|
||||||
|
if main_name.endswith('.git'):
|
||||||
|
main_name = main_name[:-len('.git')]
|
||||||
|
main = gclient_cfg.solutions.add()
|
||||||
|
main.name = main_name
|
||||||
|
main.managed = False
|
||||||
|
main.url = main_repo
|
||||||
|
main.revision = self.m.properties.get('revision') or 'origin/master'
|
||||||
|
m = gclient_cfg.got_revision_mapping
|
||||||
|
m[main_name] = 'got_revision'
|
||||||
|
patch_root = main_name
|
||||||
|
|
||||||
|
if self.m.vars.need_pdfium_checkout:
|
||||||
|
# Skia is a DEP of PDFium; the 'revision' property is a Skia revision, and
|
||||||
|
# any patch should be applied to Skia, not PDFium.
|
||||||
|
main.revision = 'origin/master'
|
||||||
|
main.managed = True
|
||||||
|
m[main_name] = 'got_%s_revision' % main_name
|
||||||
|
|
||||||
|
skia_dep_path = 'pdfium/third_party/skia'
|
||||||
|
gclient_cfg.patch_projects['skia'] = (skia_dep_path, 'HEAD')
|
||||||
|
gclient_cfg.revisions[skia_dep_path] = self.m.properties['revision']
|
||||||
|
m[skia_dep_path] = 'got_revision'
|
||||||
|
patch_root = skia_dep_path
|
||||||
|
|
||||||
|
self.update_repo(self.m.vars.checkout_root, main)
|
||||||
|
|
||||||
|
# TODO(rmistry): Remove the below block after there is a solution for
|
||||||
|
# crbug.com/616443
|
||||||
|
entries_file = self.m.vars.checkout_root.join('.gclient_entries')
|
||||||
|
if self.m.path.exists(entries_file):
|
||||||
|
self.m.file.remove('remove %s' % entries_file,
|
||||||
|
entries_file,
|
||||||
|
infra_step=True) # pragma: no cover
|
||||||
|
|
||||||
|
if self.m.vars.need_chromium_checkout:
|
||||||
|
chromium = gclient_cfg.solutions.add()
|
||||||
|
chromium.name = 'src'
|
||||||
|
chromium.managed = False
|
||||||
|
chromium.url = 'https://chromium.googlesource.com/chromium/src.git'
|
||||||
|
chromium.revision = 'origin/lkgr'
|
||||||
|
self.update_repo(self.m.vars.checkout_root, chromium)
|
||||||
|
|
||||||
|
# Run bot_update.
|
||||||
|
checkout_kwargs = {}
|
||||||
|
checkout_kwargs['env'] = self.m.vars.default_env
|
||||||
|
|
||||||
|
# Hack the patch ref if necessary.
|
||||||
|
if self.m.properties.get('patch_storage', '') == 'gerrit':
|
||||||
|
if self.m.bot_update._issue and self.m.bot_update._patchset:
|
||||||
|
self.m.bot_update._gerrit_ref = 'refs/changes/%s/%d/%d' % (
|
||||||
|
str(self.m.bot_update._issue)[-2:],
|
||||||
|
self.m.bot_update._issue,
|
||||||
|
self.m.bot_update._patchset,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.m.gclient.c = gclient_cfg
|
||||||
|
update_step = self.m.bot_update.ensure_checkout(
|
||||||
|
cwd=self.m.vars.checkout_root,
|
||||||
|
patch_root=patch_root,
|
||||||
|
**checkout_kwargs)
|
||||||
|
|
||||||
|
self.m.vars.got_revision = (
|
||||||
|
update_step.presentation.properties['got_revision'])
|
||||||
|
|
||||||
|
if self.m.vars.need_chromium_checkout:
|
||||||
|
self.m.gclient.runhooks(cwd=self.m.vars.checkout_root,
|
||||||
|
env=self.m.vars.gclient_env)
|
@ -0,0 +1,67 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
"""Common utilities for tools that deal with binary size information.
|
||||||
|
|
||||||
|
Copied from chromium/src/build/android/pylib/symbols/binary_size_tools.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def ParseNm(nm_lines):
|
||||||
|
"""Parse nm output, returning data for all relevant (to binary size)
|
||||||
|
symbols and ignoring the rest.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
nm_lines: an iterable over lines of nm output.
|
||||||
|
|
||||||
|
Yields:
|
||||||
|
(symbol name, symbol type, symbol size, source file path).
|
||||||
|
|
||||||
|
Path may be None if nm couldn't figure out the source file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Match lines with size, symbol, optional location, optional discriminator
|
||||||
|
sym_re = re.compile(r'^[0-9a-f]{8,} ' # address (8+ hex digits)
|
||||||
|
'([0-9a-f]{8,}) ' # size (8+ hex digits)
|
||||||
|
'(.) ' # symbol type, one character
|
||||||
|
'([^\t]+)' # symbol name, separated from next by tab
|
||||||
|
'(?:\t(.*):[\d\?]+)?.*$') # location
|
||||||
|
# Match lines with addr but no size.
|
||||||
|
addr_re = re.compile(r'^[0-9a-f]{8,} (.) ([^\t]+)(?:\t.*)?$')
|
||||||
|
# Match lines that don't have an address at all -- typically external symbols.
|
||||||
|
noaddr_re = re.compile(r'^ {8,} (.) (.*)$')
|
||||||
|
# Match lines with no symbol name, only addr and type
|
||||||
|
addr_only_re = re.compile(r'^[0-9a-f]{8,} (.)$')
|
||||||
|
|
||||||
|
for line in nm_lines:
|
||||||
|
line = line.rstrip()
|
||||||
|
match = sym_re.match(line)
|
||||||
|
if match:
|
||||||
|
size, sym_type, sym = match.groups()[0:3]
|
||||||
|
size = int(size, 16)
|
||||||
|
if sym_type in ('B', 'b'):
|
||||||
|
continue # skip all BSS for now.
|
||||||
|
path = match.group(4)
|
||||||
|
yield sym, sym_type, size, path
|
||||||
|
continue
|
||||||
|
match = addr_re.match(line)
|
||||||
|
if match:
|
||||||
|
# sym_type, sym = match.groups()[0:2]
|
||||||
|
continue # No size == we don't care.
|
||||||
|
match = noaddr_re.match(line)
|
||||||
|
if match:
|
||||||
|
sym_type, sym = match.groups()
|
||||||
|
if sym_type in ('U', 'w'):
|
||||||
|
continue # external or weak symbol
|
||||||
|
match = addr_only_re.match(line)
|
||||||
|
if match:
|
||||||
|
continue # Nothing to do.
|
||||||
|
|
||||||
|
|
||||||
|
# If we reach this part of the loop, there was something in the
|
||||||
|
# line that we didn't expect or recognize.
|
||||||
|
logging.warning('nm output parser failed to parse: %s', repr(line))
|
477
infra/bots/recipe_modules/core/resources/elf_symbolizer.py
Normal file
477
infra/bots/recipe_modules/core/resources/elf_symbolizer.py
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
"""The ElfSymbolizer class for symbolizing Executable and Linkable Files.
|
||||||
|
|
||||||
|
Adapted for Skia's use from
|
||||||
|
chromium/src/build/android/pylib/symbols/elf_symbolizer.py.
|
||||||
|
|
||||||
|
Main changes:
|
||||||
|
-- Added prefix_to_remove param to remove path prefix from tree data.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import collections
|
||||||
|
import datetime
|
||||||
|
import logging
|
||||||
|
import multiprocessing
|
||||||
|
import os
|
||||||
|
import posixpath
|
||||||
|
import Queue
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import threading
|
||||||
|
|
||||||
|
|
||||||
|
# addr2line builds a possibly infinite memory cache that can exhaust
|
||||||
|
# the computer's memory if allowed to grow for too long. This constant
|
||||||
|
# controls how many lookups we do before restarting the process. 4000
|
||||||
|
# gives near peak performance without extreme memory usage.
|
||||||
|
ADDR2LINE_RECYCLE_LIMIT = 4000
|
||||||
|
|
||||||
|
|
||||||
|
class ELFSymbolizer(object):
|
||||||
|
"""An uber-fast (multiprocessing, pipelined and asynchronous) ELF symbolizer.
|
||||||
|
|
||||||
|
This class is a frontend for addr2line (part of GNU binutils), designed to
|
||||||
|
symbolize batches of large numbers of symbols for a given ELF file. It
|
||||||
|
supports sharding symbolization against many addr2line instances and
|
||||||
|
pipelining of multiple requests per each instance (in order to hide addr2line
|
||||||
|
internals and OS pipe latencies).
|
||||||
|
|
||||||
|
The interface exhibited by this class is a very simple asynchronous interface,
|
||||||
|
which is based on the following three methods:
|
||||||
|
- SymbolizeAsync(): used to request (enqueue) resolution of a given address.
|
||||||
|
- The |callback| method: used to communicated back the symbol information.
|
||||||
|
- Join(): called to conclude the batch to gather the last outstanding results.
|
||||||
|
In essence, before the Join method returns, this class will have issued as
|
||||||
|
many callbacks as the number of SymbolizeAsync() calls. In this regard, note
|
||||||
|
that due to multiprocess sharding, callbacks can be delivered out of order.
|
||||||
|
|
||||||
|
Some background about addr2line:
|
||||||
|
- it is invoked passing the elf path in the cmdline, piping the addresses in
|
||||||
|
its stdin and getting results on its stdout.
|
||||||
|
- it has pretty large response times for the first requests, but it
|
||||||
|
works very well in streaming mode once it has been warmed up.
|
||||||
|
- it doesn't scale by itself (on more cores). However, spawning multiple
|
||||||
|
instances at the same time on the same file is pretty efficient as they
|
||||||
|
keep hitting the pagecache and become mostly CPU bound.
|
||||||
|
- it might hang or crash, mostly for OOM. This class deals with both of these
|
||||||
|
problems.
|
||||||
|
|
||||||
|
Despite the "scary" imports and the multi* words above, (almost) no multi-
|
||||||
|
threading/processing is involved from the python viewpoint. Concurrency
|
||||||
|
here is achieved by spawning several addr2line subprocesses and handling their
|
||||||
|
output pipes asynchronously. Therefore, all the code here (with the exception
|
||||||
|
of the Queue instance in Addr2Line) should be free from mind-blowing
|
||||||
|
thread-safety concerns.
|
||||||
|
|
||||||
|
The multiprocess sharding works as follows:
|
||||||
|
The symbolizer tries to use the lowest number of addr2line instances as
|
||||||
|
possible (with respect of |max_concurrent_jobs|) and enqueue all the requests
|
||||||
|
in a single addr2line instance. For few symbols (i.e. dozens) sharding isn't
|
||||||
|
worth the startup cost.
|
||||||
|
The multiprocess logic kicks in as soon as the queues for the existing
|
||||||
|
instances grow. Specifically, once all the existing instances reach the
|
||||||
|
|max_queue_size| bound, a new addr2line instance is kicked in.
|
||||||
|
In the case of a very eager producer (i.e. all |max_concurrent_jobs| instances
|
||||||
|
have a backlog of |max_queue_size|), back-pressure is applied on the caller by
|
||||||
|
blocking the SymbolizeAsync method.
|
||||||
|
|
||||||
|
This module has been deliberately designed to be dependency free (w.r.t. of
|
||||||
|
other modules in this project), to allow easy reuse in external projects.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, elf_file_path, addr2line_path, callback, inlines=False,
|
||||||
|
max_concurrent_jobs=None, addr2line_timeout=30, max_queue_size=50,
|
||||||
|
source_root_path=None, strip_base_path=None, prefix_to_remove=None):
|
||||||
|
"""Args:
|
||||||
|
elf_file_path: path of the elf file to be symbolized.
|
||||||
|
addr2line_path: path of the toolchain's addr2line binary.
|
||||||
|
callback: a callback which will be invoked for each resolved symbol with
|
||||||
|
the two args (sym_info, callback_arg). The former is an instance of
|
||||||
|
|ELFSymbolInfo| and contains the symbol information. The latter is an
|
||||||
|
embedder-provided argument which is passed to SymbolizeAsync().
|
||||||
|
inlines: when True, the ELFSymbolInfo will contain also the details about
|
||||||
|
the outer inlining functions. When False, only the innermost function
|
||||||
|
will be provided.
|
||||||
|
max_concurrent_jobs: Max number of addr2line instances spawned.
|
||||||
|
Parallelize responsibly, addr2line is a memory and I/O monster.
|
||||||
|
max_queue_size: Max number of outstanding requests per addr2line instance.
|
||||||
|
addr2line_timeout: Max time (in seconds) to wait for a addr2line response.
|
||||||
|
After the timeout, the instance will be considered hung and respawned.
|
||||||
|
source_root_path: In some toolchains only the name of the source file is
|
||||||
|
is output, without any path information; disambiguation searches
|
||||||
|
through the source directory specified by |source_root_path| argument
|
||||||
|
for files whose name matches, adding the full path information to the
|
||||||
|
output. For example, if the toolchain outputs "unicode.cc" and there
|
||||||
|
is a file called "unicode.cc" located under |source_root_path|/foo,
|
||||||
|
the tool will replace "unicode.cc" with
|
||||||
|
"|source_root_path|/foo/unicode.cc". If there are multiple files with
|
||||||
|
the same name, disambiguation will fail because the tool cannot
|
||||||
|
determine which of the files was the source of the symbol.
|
||||||
|
strip_base_path: Rebases the symbols source paths onto |source_root_path|
|
||||||
|
(i.e replace |strip_base_path| with |source_root_path).
|
||||||
|
prefix_to_remove: Removes the prefix from ElfSymbolInfo output. Skia added
|
||||||
|
"""
|
||||||
|
assert(os.path.isfile(addr2line_path)), 'Cannot find ' + addr2line_path
|
||||||
|
self.elf_file_path = elf_file_path
|
||||||
|
self.addr2line_path = addr2line_path
|
||||||
|
self.callback = callback
|
||||||
|
self.inlines = inlines
|
||||||
|
self.max_concurrent_jobs = (max_concurrent_jobs or
|
||||||
|
min(multiprocessing.cpu_count(), 4))
|
||||||
|
self.max_queue_size = max_queue_size
|
||||||
|
self.addr2line_timeout = addr2line_timeout
|
||||||
|
self.requests_counter = 0 # For generating monotonic request IDs.
|
||||||
|
self._a2l_instances = [] # Up to |max_concurrent_jobs| _Addr2Line inst.
|
||||||
|
|
||||||
|
# Skia addition: remove the given prefix from tree paths.
|
||||||
|
self.prefix_to_remove = prefix_to_remove
|
||||||
|
|
||||||
|
# If necessary, create disambiguation lookup table
|
||||||
|
self.disambiguate = source_root_path is not None
|
||||||
|
self.disambiguation_table = {}
|
||||||
|
self.strip_base_path = strip_base_path
|
||||||
|
if(self.disambiguate):
|
||||||
|
self.source_root_path = os.path.abspath(source_root_path)
|
||||||
|
self._CreateDisambiguationTable()
|
||||||
|
|
||||||
|
# Create one addr2line instance. More instances will be created on demand
|
||||||
|
# (up to |max_concurrent_jobs|) depending on the rate of the requests.
|
||||||
|
self._CreateNewA2LInstance()
|
||||||
|
|
||||||
|
def SymbolizeAsync(self, addr, callback_arg=None):
|
||||||
|
"""Requests symbolization of a given address.
|
||||||
|
|
||||||
|
This method is not guaranteed to return immediately. It generally does, but
|
||||||
|
in some scenarios (e.g. all addr2line instances have full queues) it can
|
||||||
|
block to create back-pressure.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
addr: address to symbolize.
|
||||||
|
callback_arg: optional argument which will be passed to the |callback|."""
|
||||||
|
assert(isinstance(addr, int))
|
||||||
|
|
||||||
|
# Process all the symbols that have been resolved in the meanwhile.
|
||||||
|
# Essentially, this drains all the addr2line(s) out queues.
|
||||||
|
for a2l_to_purge in self._a2l_instances:
|
||||||
|
a2l_to_purge.ProcessAllResolvedSymbolsInQueue()
|
||||||
|
a2l_to_purge.RecycleIfNecessary()
|
||||||
|
|
||||||
|
# Find the best instance according to this logic:
|
||||||
|
# 1. Find an existing instance with the shortest queue.
|
||||||
|
# 2. If all of instances' queues are full, but there is room in the pool,
|
||||||
|
# (i.e. < |max_concurrent_jobs|) create a new instance.
|
||||||
|
# 3. If there were already |max_concurrent_jobs| instances and all of them
|
||||||
|
# had full queues, make back-pressure.
|
||||||
|
|
||||||
|
# 1.
|
||||||
|
def _SortByQueueSizeAndReqID(a2l):
|
||||||
|
return (a2l.queue_size, a2l.first_request_id)
|
||||||
|
a2l = min(self._a2l_instances, key=_SortByQueueSizeAndReqID)
|
||||||
|
|
||||||
|
# 2.
|
||||||
|
if (a2l.queue_size >= self.max_queue_size and
|
||||||
|
len(self._a2l_instances) < self.max_concurrent_jobs):
|
||||||
|
a2l = self._CreateNewA2LInstance()
|
||||||
|
|
||||||
|
# 3.
|
||||||
|
if a2l.queue_size >= self.max_queue_size:
|
||||||
|
a2l.WaitForNextSymbolInQueue()
|
||||||
|
|
||||||
|
a2l.EnqueueRequest(addr, callback_arg)
|
||||||
|
|
||||||
|
def Join(self):
|
||||||
|
"""Waits for all the outstanding requests to complete and terminates."""
|
||||||
|
for a2l in self._a2l_instances:
|
||||||
|
a2l.WaitForIdle()
|
||||||
|
a2l.Terminate()
|
||||||
|
|
||||||
|
def _CreateNewA2LInstance(self):
|
||||||
|
assert(len(self._a2l_instances) < self.max_concurrent_jobs)
|
||||||
|
a2l = ELFSymbolizer.Addr2Line(self)
|
||||||
|
self._a2l_instances.append(a2l)
|
||||||
|
return a2l
|
||||||
|
|
||||||
|
def _CreateDisambiguationTable(self):
|
||||||
|
""" Non-unique file names will result in None entries"""
|
||||||
|
self.disambiguation_table = {}
|
||||||
|
|
||||||
|
for root, _, filenames in os.walk(self.source_root_path):
|
||||||
|
for f in filenames:
|
||||||
|
self.disambiguation_table[f] = os.path.join(root, f) if (f not in
|
||||||
|
self.disambiguation_table) else None
|
||||||
|
|
||||||
|
|
||||||
|
class Addr2Line(object):
|
||||||
|
"""A python wrapper around an addr2line instance.
|
||||||
|
|
||||||
|
The communication with the addr2line process looks as follows:
|
||||||
|
[STDIN] [STDOUT] (from addr2line's viewpoint)
|
||||||
|
> f001111
|
||||||
|
> f002222
|
||||||
|
< Symbol::Name(foo, bar) for f001111
|
||||||
|
< /path/to/source/file.c:line_number
|
||||||
|
> f003333
|
||||||
|
< Symbol::Name2() for f002222
|
||||||
|
< /path/to/source/file.c:line_number
|
||||||
|
< Symbol::Name3() for f003333
|
||||||
|
< /path/to/source/file.c:line_number
|
||||||
|
"""
|
||||||
|
|
||||||
|
SYM_ADDR_RE = re.compile(r'([^:]+):(\?|\d+).*')
|
||||||
|
|
||||||
|
def __init__(self, symbolizer):
|
||||||
|
self._symbolizer = symbolizer
|
||||||
|
self._lib_file_name = posixpath.basename(symbolizer.elf_file_path)
|
||||||
|
|
||||||
|
# The request queue (i.e. addresses pushed to addr2line's stdin and not
|
||||||
|
# yet retrieved on stdout)
|
||||||
|
self._request_queue = collections.deque()
|
||||||
|
|
||||||
|
# This is essentially len(self._request_queue). It has been optimized to a
|
||||||
|
# separate field because turned out to be a perf hot-spot.
|
||||||
|
self.queue_size = 0
|
||||||
|
|
||||||
|
# Keep track of the number of symbols a process has processed to
|
||||||
|
# avoid a single process growing too big and using all the memory.
|
||||||
|
self._processed_symbols_count = 0
|
||||||
|
|
||||||
|
# Objects required to handle the addr2line subprocess.
|
||||||
|
self._proc = None # Subprocess.Popen(...) instance.
|
||||||
|
self._thread = None # Threading.thread instance.
|
||||||
|
self._out_queue = None # Queue.Queue instance (for buffering a2l stdout).
|
||||||
|
self._RestartAddr2LineProcess()
|
||||||
|
|
||||||
|
def EnqueueRequest(self, addr, callback_arg):
|
||||||
|
"""Pushes an address to addr2line's stdin (and keeps track of it)."""
|
||||||
|
self._symbolizer.requests_counter += 1 # For global "age" of requests.
|
||||||
|
req_idx = self._symbolizer.requests_counter
|
||||||
|
self._request_queue.append((addr, callback_arg, req_idx))
|
||||||
|
self.queue_size += 1
|
||||||
|
self._WriteToA2lStdin(addr)
|
||||||
|
|
||||||
|
def WaitForIdle(self):
|
||||||
|
"""Waits until all the pending requests have been symbolized."""
|
||||||
|
while self.queue_size > 0:
|
||||||
|
self.WaitForNextSymbolInQueue()
|
||||||
|
|
||||||
|
def WaitForNextSymbolInQueue(self):
|
||||||
|
"""Waits for the next pending request to be symbolized."""
|
||||||
|
if not self.queue_size:
|
||||||
|
return
|
||||||
|
|
||||||
|
# This outer loop guards against a2l hanging (detecting stdout timeout).
|
||||||
|
while True:
|
||||||
|
start_time = datetime.datetime.now()
|
||||||
|
timeout = datetime.timedelta(seconds=self._symbolizer.addr2line_timeout)
|
||||||
|
|
||||||
|
# The inner loop guards against a2l crashing (checking if it exited).
|
||||||
|
while (datetime.datetime.now() - start_time < timeout):
|
||||||
|
# poll() returns !None if the process exited. a2l should never exit.
|
||||||
|
if self._proc.poll():
|
||||||
|
logging.warning('addr2line crashed, respawning (lib: %s).' %
|
||||||
|
self._lib_file_name)
|
||||||
|
self._RestartAddr2LineProcess()
|
||||||
|
# TODO(primiano): the best thing to do in this case would be
|
||||||
|
# shrinking the pool size as, very likely, addr2line is crashed
|
||||||
|
# due to low memory (and the respawned one will die again soon).
|
||||||
|
|
||||||
|
try:
|
||||||
|
lines = self._out_queue.get(block=True, timeout=0.25)
|
||||||
|
except Queue.Empty:
|
||||||
|
# On timeout (1/4 s.) repeat the inner loop and check if either the
|
||||||
|
# addr2line process did crash or we waited its output for too long.
|
||||||
|
continue
|
||||||
|
|
||||||
|
# In nominal conditions, we get straight to this point.
|
||||||
|
self._ProcessSymbolOutput(lines)
|
||||||
|
return
|
||||||
|
|
||||||
|
# If this point is reached, we waited more than |addr2line_timeout|.
|
||||||
|
logging.warning('Hung addr2line process, respawning (lib: %s).' %
|
||||||
|
self._lib_file_name)
|
||||||
|
self._RestartAddr2LineProcess()
|
||||||
|
|
||||||
|
def ProcessAllResolvedSymbolsInQueue(self):
|
||||||
|
"""Consumes all the addr2line output lines produced (without blocking)."""
|
||||||
|
if not self.queue_size:
|
||||||
|
return
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
lines = self._out_queue.get_nowait()
|
||||||
|
except Queue.Empty:
|
||||||
|
break
|
||||||
|
self._ProcessSymbolOutput(lines)
|
||||||
|
|
||||||
|
def RecycleIfNecessary(self):
|
||||||
|
"""Restarts the process if it has been used for too long.
|
||||||
|
|
||||||
|
A long running addr2line process will consume excessive amounts
|
||||||
|
of memory without any gain in performance."""
|
||||||
|
if self._processed_symbols_count >= ADDR2LINE_RECYCLE_LIMIT:
|
||||||
|
self._RestartAddr2LineProcess()
|
||||||
|
|
||||||
|
|
||||||
|
def Terminate(self):
|
||||||
|
"""Kills the underlying addr2line process.
|
||||||
|
|
||||||
|
The poller |_thread| will terminate as well due to the broken pipe."""
|
||||||
|
try:
|
||||||
|
self._proc.kill()
|
||||||
|
self._proc.communicate() # Essentially wait() without risking deadlock.
|
||||||
|
except Exception: # An exception while terminating? How interesting.
|
||||||
|
pass
|
||||||
|
self._proc = None
|
||||||
|
|
||||||
|
def _WriteToA2lStdin(self, addr):
|
||||||
|
self._proc.stdin.write('%s\n' % hex(addr))
|
||||||
|
if self._symbolizer.inlines:
|
||||||
|
# In the case of inlines we output an extra blank line, which causes
|
||||||
|
# addr2line to emit a (??,??:0) tuple that we use as a boundary marker.
|
||||||
|
self._proc.stdin.write('\n')
|
||||||
|
self._proc.stdin.flush()
|
||||||
|
|
||||||
|
def _ProcessSymbolOutput(self, lines):
|
||||||
|
"""Parses an addr2line symbol output and triggers the client callback."""
|
||||||
|
(_, callback_arg, _) = self._request_queue.popleft()
|
||||||
|
self.queue_size -= 1
|
||||||
|
|
||||||
|
innermost_sym_info = None
|
||||||
|
sym_info = None
|
||||||
|
for (line1, line2) in lines:
|
||||||
|
prev_sym_info = sym_info
|
||||||
|
name = line1 if not line1.startswith('?') else None
|
||||||
|
source_path = None
|
||||||
|
source_line = None
|
||||||
|
m = ELFSymbolizer.Addr2Line.SYM_ADDR_RE.match(line2)
|
||||||
|
if m:
|
||||||
|
if not m.group(1).startswith('?'):
|
||||||
|
source_path = m.group(1)
|
||||||
|
if not m.group(2).startswith('?'):
|
||||||
|
source_line = int(m.group(2))
|
||||||
|
else:
|
||||||
|
logging.warning('Got invalid symbol path from addr2line: %s' % line2)
|
||||||
|
|
||||||
|
# In case disambiguation is on, and needed
|
||||||
|
was_ambiguous = False
|
||||||
|
disambiguated = False
|
||||||
|
if self._symbolizer.disambiguate:
|
||||||
|
if source_path and not posixpath.isabs(source_path):
|
||||||
|
path = self._symbolizer.disambiguation_table.get(source_path)
|
||||||
|
was_ambiguous = True
|
||||||
|
disambiguated = path is not None
|
||||||
|
source_path = path if disambiguated else source_path
|
||||||
|
|
||||||
|
# Use absolute paths (so that paths are consistent, as disambiguation
|
||||||
|
# uses absolute paths)
|
||||||
|
if source_path and not was_ambiguous:
|
||||||
|
source_path = os.path.abspath(source_path)
|
||||||
|
|
||||||
|
if source_path and self._symbolizer.strip_base_path:
|
||||||
|
# Strip the base path
|
||||||
|
source_path = re.sub('^' + self._symbolizer.strip_base_path,
|
||||||
|
self._symbolizer.source_root_path or '', source_path)
|
||||||
|
|
||||||
|
sym_info = ELFSymbolInfo(name, source_path, source_line, was_ambiguous,
|
||||||
|
disambiguated,
|
||||||
|
self._symbolizer.prefix_to_remove)
|
||||||
|
if prev_sym_info:
|
||||||
|
prev_sym_info.inlined_by = sym_info
|
||||||
|
if not innermost_sym_info:
|
||||||
|
innermost_sym_info = sym_info
|
||||||
|
|
||||||
|
self._processed_symbols_count += 1
|
||||||
|
self._symbolizer.callback(innermost_sym_info, callback_arg)
|
||||||
|
|
||||||
|
def _RestartAddr2LineProcess(self):
|
||||||
|
if self._proc:
|
||||||
|
self.Terminate()
|
||||||
|
|
||||||
|
# The only reason of existence of this Queue (and the corresponding
|
||||||
|
# Thread below) is the lack of a subprocess.stdout.poll_avail_lines().
|
||||||
|
# Essentially this is a pipe able to extract a couple of lines atomically.
|
||||||
|
self._out_queue = Queue.Queue()
|
||||||
|
|
||||||
|
# Start the underlying addr2line process in line buffered mode.
|
||||||
|
|
||||||
|
cmd = [self._symbolizer.addr2line_path, '--functions', '--demangle',
|
||||||
|
'--exe=' + self._symbolizer.elf_file_path]
|
||||||
|
if self._symbolizer.inlines:
|
||||||
|
cmd += ['--inlines']
|
||||||
|
self._proc = subprocess.Popen(cmd, bufsize=1, stdout=subprocess.PIPE,
|
||||||
|
stdin=subprocess.PIPE, stderr=sys.stderr, close_fds=True)
|
||||||
|
|
||||||
|
# Start the poller thread, which simply moves atomically the lines read
|
||||||
|
# from the addr2line's stdout to the |_out_queue|.
|
||||||
|
self._thread = threading.Thread(
|
||||||
|
target=ELFSymbolizer.Addr2Line.StdoutReaderThread,
|
||||||
|
args=(self._proc.stdout, self._out_queue, self._symbolizer.inlines))
|
||||||
|
self._thread.daemon = True # Don't prevent early process exit.
|
||||||
|
self._thread.start()
|
||||||
|
|
||||||
|
self._processed_symbols_count = 0
|
||||||
|
|
||||||
|
# Replay the pending requests on the new process (only for the case
|
||||||
|
# of a hung addr2line timing out during the game).
|
||||||
|
for (addr, _, _) in self._request_queue:
|
||||||
|
self._WriteToA2lStdin(addr)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def StdoutReaderThread(process_pipe, queue, inlines):
|
||||||
|
"""The poller thread fn, which moves the addr2line stdout to the |queue|.
|
||||||
|
|
||||||
|
This is the only piece of code not running on the main thread. It merely
|
||||||
|
writes to a Queue, which is thread-safe. In the case of inlines, it
|
||||||
|
detects the ??,??:0 marker and sends the lines atomically, such that the
|
||||||
|
main thread always receives all the lines corresponding to one symbol in
|
||||||
|
one shot."""
|
||||||
|
try:
|
||||||
|
lines_for_one_symbol = []
|
||||||
|
while True:
|
||||||
|
line1 = process_pipe.readline().rstrip('\r\n')
|
||||||
|
line2 = process_pipe.readline().rstrip('\r\n')
|
||||||
|
if not line1 or not line2:
|
||||||
|
break
|
||||||
|
inline_has_more_lines = inlines and (len(lines_for_one_symbol) == 0 or
|
||||||
|
(line1 != '??' and line2 != '??:0'))
|
||||||
|
if not inlines or inline_has_more_lines:
|
||||||
|
lines_for_one_symbol += [(line1, line2)]
|
||||||
|
if inline_has_more_lines:
|
||||||
|
continue
|
||||||
|
queue.put(lines_for_one_symbol)
|
||||||
|
lines_for_one_symbol = []
|
||||||
|
process_pipe.close()
|
||||||
|
|
||||||
|
# Every addr2line processes will die at some point, please die silently.
|
||||||
|
except (IOError, OSError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def first_request_id(self):
|
||||||
|
"""Returns the request_id of the oldest pending request in the queue."""
|
||||||
|
return self._request_queue[0][2] if self._request_queue else 0
|
||||||
|
|
||||||
|
|
||||||
|
class ELFSymbolInfo(object):
|
||||||
|
"""The result of the symbolization passed as first arg. of each callback."""
|
||||||
|
|
||||||
|
def __init__(self, name, source_path, source_line, was_ambiguous=False,
|
||||||
|
disambiguated=False, prefix_to_remove=None):
|
||||||
|
"""All the fields here can be None (if addr2line replies with '??')."""
|
||||||
|
self.name = name
|
||||||
|
if source_path and source_path.startswith(prefix_to_remove):
|
||||||
|
source_path = source_path[len(prefix_to_remove) : ]
|
||||||
|
self.source_path = source_path
|
||||||
|
self.source_line = source_line
|
||||||
|
# In the case of |inlines|=True, the |inlined_by| points to the outer
|
||||||
|
# function inlining the current one (and so on, to form a chain).
|
||||||
|
self.inlined_by = None
|
||||||
|
self.disambiguated = disambiguated
|
||||||
|
self.was_ambiguous = was_ambiguous
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return '%s [%s:%d]' % (
|
||||||
|
self.name or '??', self.source_path or '??', self.source_line or 0)
|
75
infra/bots/recipe_modules/core/resources/generate_and_upload_doxygen.py
Executable file
75
infra/bots/recipe_modules/core/resources/generate_and_upload_doxygen.py
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
|
||||||
|
"""Generate Doxygen documentation."""
|
||||||
|
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
DOXYFILE_BASENAME = 'Doxyfile' # must match name of Doxyfile in skia root
|
||||||
|
DOXYGEN_BINARY = 'doxygen'
|
||||||
|
WORKDIR = os.path.join(os.pardir, 'doxygen_workdir')
|
||||||
|
DOXYGEN_CONFIG_DIR = os.path.join(WORKDIR, 'doxygen-config')
|
||||||
|
DOXYGEN_WORKING_DIR = os.path.join(WORKDIR, 'doxygen')
|
||||||
|
DOXYGEN_GS_PATH = '/'.join(['gs://skia-doc', 'doxygen'])
|
||||||
|
|
||||||
|
IFRAME_FOOTER_TEMPLATE = """
|
||||||
|
<html><body><address style="text-align: right;"><small>
|
||||||
|
Generated at %s for skia
|
||||||
|
by <a href="http://www.doxygen.org/index.html">doxygen</a>
|
||||||
|
%s </small></address></body></html>
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def recreate_dir(path):
|
||||||
|
"""Delete and recreate the directory."""
|
||||||
|
try:
|
||||||
|
shutil.rmtree(path)
|
||||||
|
except OSError:
|
||||||
|
if os.path.exists(path):
|
||||||
|
raise Exception('Could not remove %s' % path)
|
||||||
|
os.makedirs(path)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_and_upload_doxygen():
|
||||||
|
"""Generate Doxygen."""
|
||||||
|
# Create empty dir and add static_footer.txt
|
||||||
|
recreate_dir(DOXYGEN_WORKING_DIR)
|
||||||
|
static_footer_path = os.path.join(DOXYGEN_WORKING_DIR, 'static_footer.txt')
|
||||||
|
shutil.copyfile(os.path.join('tools', 'doxygen_footer.txt'),
|
||||||
|
static_footer_path)
|
||||||
|
|
||||||
|
# Make copy of doxygen config file, overriding any necessary configs,
|
||||||
|
# and run doxygen.
|
||||||
|
recreate_dir(DOXYGEN_CONFIG_DIR)
|
||||||
|
modified_doxyfile = os.path.join(DOXYGEN_CONFIG_DIR, DOXYFILE_BASENAME)
|
||||||
|
with open(DOXYFILE_BASENAME, 'r') as reader:
|
||||||
|
with open(modified_doxyfile, 'w') as writer:
|
||||||
|
shutil.copyfileobj(reader, writer)
|
||||||
|
writer.write('OUTPUT_DIRECTORY = %s\n' % DOXYGEN_WORKING_DIR)
|
||||||
|
writer.write('HTML_FOOTER = %s\n' % static_footer_path)
|
||||||
|
subprocess.check_call([DOXYGEN_BINARY, modified_doxyfile])
|
||||||
|
|
||||||
|
# Create iframe_footer.html
|
||||||
|
with open(os.path.join(DOXYGEN_WORKING_DIR, 'iframe_footer.html'), 'w') as f:
|
||||||
|
f.write(IFRAME_FOOTER_TEMPLATE % (
|
||||||
|
datetime.datetime.now().isoformat(' '),
|
||||||
|
subprocess.check_output([DOXYGEN_BINARY, '--version']).rstrip()))
|
||||||
|
|
||||||
|
# Upload.
|
||||||
|
cmd = ['gsutil', 'cp', '-a', 'public-read', '-R',
|
||||||
|
DOXYGEN_WORKING_DIR, DOXYGEN_GS_PATH]
|
||||||
|
subprocess.check_call(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
if '__main__' == __name__:
|
||||||
|
generate_and_upload_doxygen()
|
||||||
|
|
817
infra/bots/recipe_modules/core/resources/run_binary_size_analysis.py
Executable file
817
infra/bots/recipe_modules/core/resources/run_binary_size_analysis.py
Executable file
@ -0,0 +1,817 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
"""Generate a spatial analysis against an arbitrary library.
|
||||||
|
|
||||||
|
Adapted for Skia's use case from
|
||||||
|
chromium/src/tools/binary_size/run_binary_size_analysis.py. Main changes:
|
||||||
|
|
||||||
|
-- Cleans up some deprecated codes.
|
||||||
|
-- Always use relative code path so the tree root is Skia repo's root.
|
||||||
|
-- Instead of outputting the standalone HTML/CSS/JS filesets, writes the
|
||||||
|
TreeMap JSON data into a Google Storage bucket.
|
||||||
|
-- Adds githash and total_size to the JSON data.
|
||||||
|
-- Outputs another summary data in JSON Bench format for skiaperf ingestion.
|
||||||
|
|
||||||
|
The output JSON data for visualization is in the following format:
|
||||||
|
|
||||||
|
{
|
||||||
|
"githash": 123abc,
|
||||||
|
"commit_ts": 1234567890,
|
||||||
|
"total_size": 1234567,
|
||||||
|
"key": {"source_type": "binary_size"},
|
||||||
|
"tree_data": {
|
||||||
|
"maxDepth": 9,
|
||||||
|
"k": "p", "children":[
|
||||||
|
{"k":"p","children":[
|
||||||
|
{"k":"p","children":[
|
||||||
|
{"k":"p","lastPathElement":true,"children":[
|
||||||
|
{"k":"b","t":"t","children":[
|
||||||
|
{"k":"s", "t":"t", "value":4029,
|
||||||
|
"n":"etc_encode_subblock_helper(unsigned char const*, ...)"
|
||||||
|
},
|
||||||
|
......
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Another JSON file is generated for size summaries to be used in skiaperf. The
|
||||||
|
JSON format details can be found at:
|
||||||
|
https://github.com/google/skia/blob/master/bench/ResultsWriter.h#L54
|
||||||
|
and:
|
||||||
|
https://skia.googlesource.com/buildbot/+/master/perf/go/ingester/nanobench.go
|
||||||
|
|
||||||
|
In the binary size case, outputs look like:
|
||||||
|
|
||||||
|
{
|
||||||
|
"gitHash": "123abc",
|
||||||
|
"key": {
|
||||||
|
"source_type": "binarysize"
|
||||||
|
}
|
||||||
|
"results: {
|
||||||
|
"src_lazy_global_weak_symbol": {
|
||||||
|
"memory": {
|
||||||
|
"bytes": 41,
|
||||||
|
"options": {
|
||||||
|
"path": "src_lazy",
|
||||||
|
"symbol": "global_weak_symbol"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"src_lazy_global_read_only_data": {
|
||||||
|
"memory": {
|
||||||
|
"bytes": 13476,
|
||||||
|
"options": {
|
||||||
|
"path": "src_lazy",
|
||||||
|
"symbol": "global_read_only_data"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
import collections
|
||||||
|
import datetime
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import multiprocessing
|
||||||
|
import optparse
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import struct
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import time
|
||||||
|
import urllib2
|
||||||
|
|
||||||
|
import binary_size_utils
|
||||||
|
import elf_symbolizer
|
||||||
|
|
||||||
|
from recipe_engine.types import freeze
|
||||||
|
|
||||||
|
# Node dictionary keys. These are output in json read by the webapp so
|
||||||
|
# keep them short to save file size.
|
||||||
|
# Note: If these change, the webapp must also change.
|
||||||
|
NODE_TYPE_KEY = 'k'
|
||||||
|
NODE_NAME_KEY = 'n'
|
||||||
|
NODE_CHILDREN_KEY = 'children'
|
||||||
|
NODE_SYMBOL_TYPE_KEY = 't'
|
||||||
|
NODE_SYMBOL_SIZE_KEY = 'value'
|
||||||
|
NODE_MAX_DEPTH_KEY = 'maxDepth'
|
||||||
|
NODE_LAST_PATH_ELEMENT_KEY = 'lastPathElement'
|
||||||
|
|
||||||
|
# The display name of the bucket where we put symbols without path.
|
||||||
|
NAME_NO_PATH_BUCKET = '(No Path)'
|
||||||
|
|
||||||
|
# Try to keep data buckets smaller than this to avoid killing the
|
||||||
|
# graphing lib.
|
||||||
|
BIG_BUCKET_LIMIT = 3000
|
||||||
|
|
||||||
|
# Skia addition: relative dir for libskia.so from code base.
|
||||||
|
LIBSKIA_RELATIVE_PATH = os.path.join('out', 'Release', 'lib')
|
||||||
|
|
||||||
|
# Skia addition: dictionary mapping symbol type code to symbol name.
|
||||||
|
# See
|
||||||
|
# https://code.google.com/p/chromium/codesearch#chromium/src/tools/binary_size/template/D3SymbolTreeMap.js&l=74
|
||||||
|
SYMBOL_MAP = freeze({
|
||||||
|
'A': 'global_absolute',
|
||||||
|
'B': 'global_uninitialized_data',
|
||||||
|
'b': 'local_uninitialized_data',
|
||||||
|
'C': 'global_uninitialized_common',
|
||||||
|
'D': 'global_initialized_data',
|
||||||
|
'd': 'local_initialized_data',
|
||||||
|
'G': 'global_small initialized_data',
|
||||||
|
'g': 'local_small_initialized_data',
|
||||||
|
'i': 'indirect_function',
|
||||||
|
'N': 'debugging',
|
||||||
|
'p': 'stack_unwind',
|
||||||
|
'R': 'global_read_only_data',
|
||||||
|
'r': 'local_read_only_data',
|
||||||
|
'S': 'global_small_uninitialized_data',
|
||||||
|
's': 'local_small_uninitialized_data',
|
||||||
|
'T': 'global_code',
|
||||||
|
't': 'local_code',
|
||||||
|
'U': 'undefined',
|
||||||
|
'u': 'unique',
|
||||||
|
'V': 'global_weak_object',
|
||||||
|
'v': 'local_weak_object',
|
||||||
|
'W': 'global_weak_symbol',
|
||||||
|
'w': 'local_weak_symbol',
|
||||||
|
'@': 'vtable_entry',
|
||||||
|
'-': 'stabs_debugging',
|
||||||
|
'?': 'unrecognized',
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
def _MkChild(node, name):
|
||||||
|
child = node[NODE_CHILDREN_KEY].get(name)
|
||||||
|
if child is None:
|
||||||
|
child = {NODE_NAME_KEY: name,
|
||||||
|
NODE_CHILDREN_KEY: {}}
|
||||||
|
node[NODE_CHILDREN_KEY][name] = child
|
||||||
|
return child
|
||||||
|
|
||||||
|
|
||||||
|
def SplitNoPathBucket(node):
|
||||||
|
"""NAME_NO_PATH_BUCKET can be too large for the graphing lib to
|
||||||
|
handle. Split it into sub-buckets in that case."""
|
||||||
|
root_children = node[NODE_CHILDREN_KEY]
|
||||||
|
if NAME_NO_PATH_BUCKET in root_children:
|
||||||
|
no_path_bucket = root_children[NAME_NO_PATH_BUCKET]
|
||||||
|
old_children = no_path_bucket[NODE_CHILDREN_KEY]
|
||||||
|
count = 0
|
||||||
|
for symbol_type, symbol_bucket in old_children.iteritems():
|
||||||
|
count += len(symbol_bucket[NODE_CHILDREN_KEY])
|
||||||
|
if count > BIG_BUCKET_LIMIT:
|
||||||
|
new_children = {}
|
||||||
|
no_path_bucket[NODE_CHILDREN_KEY] = new_children
|
||||||
|
current_bucket = None
|
||||||
|
index = 0
|
||||||
|
for symbol_type, symbol_bucket in old_children.iteritems():
|
||||||
|
for symbol_name, value in symbol_bucket[NODE_CHILDREN_KEY].iteritems():
|
||||||
|
if index % BIG_BUCKET_LIMIT == 0:
|
||||||
|
group_no = (index / BIG_BUCKET_LIMIT) + 1
|
||||||
|
current_bucket = _MkChild(no_path_bucket,
|
||||||
|
'%s subgroup %d' % (NAME_NO_PATH_BUCKET,
|
||||||
|
group_no))
|
||||||
|
assert not NODE_TYPE_KEY in node or node[NODE_TYPE_KEY] == 'p'
|
||||||
|
node[NODE_TYPE_KEY] = 'p' # p for path
|
||||||
|
index += 1
|
||||||
|
symbol_size = value[NODE_SYMBOL_SIZE_KEY]
|
||||||
|
AddSymbolIntoFileNode(current_bucket, symbol_type,
|
||||||
|
symbol_name, symbol_size)
|
||||||
|
|
||||||
|
|
||||||
|
def MakeChildrenDictsIntoLists(node):
|
||||||
|
largest_list_len = 0
|
||||||
|
if NODE_CHILDREN_KEY in node:
|
||||||
|
largest_list_len = len(node[NODE_CHILDREN_KEY])
|
||||||
|
child_list = []
|
||||||
|
for child in node[NODE_CHILDREN_KEY].itervalues():
|
||||||
|
child_largest_list_len = MakeChildrenDictsIntoLists(child)
|
||||||
|
if child_largest_list_len > largest_list_len:
|
||||||
|
largest_list_len = child_largest_list_len
|
||||||
|
child_list.append(child)
|
||||||
|
node[NODE_CHILDREN_KEY] = child_list
|
||||||
|
|
||||||
|
return largest_list_len
|
||||||
|
|
||||||
|
|
||||||
|
def AddSymbolIntoFileNode(node, symbol_type, symbol_name, symbol_size):
|
||||||
|
"""Puts symbol into the file path node |node|.
|
||||||
|
Returns the number of added levels in tree. I.e. returns 2."""
|
||||||
|
|
||||||
|
# 'node' is the file node and first step is to find its symbol-type bucket.
|
||||||
|
node[NODE_LAST_PATH_ELEMENT_KEY] = True
|
||||||
|
node = _MkChild(node, symbol_type)
|
||||||
|
assert not NODE_TYPE_KEY in node or node[NODE_TYPE_KEY] == 'b'
|
||||||
|
node[NODE_SYMBOL_TYPE_KEY] = symbol_type
|
||||||
|
node[NODE_TYPE_KEY] = 'b' # b for bucket
|
||||||
|
|
||||||
|
# 'node' is now the symbol-type bucket. Make the child entry.
|
||||||
|
node = _MkChild(node, symbol_name)
|
||||||
|
if NODE_CHILDREN_KEY in node:
|
||||||
|
if node[NODE_CHILDREN_KEY]:
|
||||||
|
logging.warning('A container node used as symbol for %s.' % symbol_name)
|
||||||
|
# This is going to be used as a leaf so no use for child list.
|
||||||
|
del node[NODE_CHILDREN_KEY]
|
||||||
|
node[NODE_SYMBOL_SIZE_KEY] = symbol_size
|
||||||
|
node[NODE_SYMBOL_TYPE_KEY] = symbol_type
|
||||||
|
node[NODE_TYPE_KEY] = 's' # s for symbol
|
||||||
|
|
||||||
|
return 2 # Depth of the added subtree.
|
||||||
|
|
||||||
|
|
||||||
|
def MakeCompactTree(symbols, symbol_path_origin_dir):
|
||||||
|
result = {NODE_NAME_KEY: '/',
|
||||||
|
NODE_CHILDREN_KEY: {},
|
||||||
|
NODE_TYPE_KEY: 'p',
|
||||||
|
NODE_MAX_DEPTH_KEY: 0}
|
||||||
|
seen_symbol_with_path = False
|
||||||
|
for symbol_name, symbol_type, symbol_size, file_path in symbols:
|
||||||
|
|
||||||
|
if 'vtable for ' in symbol_name:
|
||||||
|
symbol_type = '@' # hack to categorize these separately
|
||||||
|
if file_path and file_path != "??":
|
||||||
|
seen_symbol_with_path = True
|
||||||
|
else:
|
||||||
|
file_path = NAME_NO_PATH_BUCKET
|
||||||
|
|
||||||
|
path_parts = file_path.split('/')
|
||||||
|
|
||||||
|
# Find pre-existing node in tree, or update if it already exists
|
||||||
|
node = result
|
||||||
|
depth = 0
|
||||||
|
while len(path_parts) > 0:
|
||||||
|
path_part = path_parts.pop(0)
|
||||||
|
if len(path_part) == 0:
|
||||||
|
continue
|
||||||
|
depth += 1
|
||||||
|
node = _MkChild(node, path_part)
|
||||||
|
assert not NODE_TYPE_KEY in node or node[NODE_TYPE_KEY] == 'p'
|
||||||
|
node[NODE_TYPE_KEY] = 'p' # p for path
|
||||||
|
|
||||||
|
depth += AddSymbolIntoFileNode(node, symbol_type, symbol_name, symbol_size)
|
||||||
|
result[NODE_MAX_DEPTH_KEY] = max(result[NODE_MAX_DEPTH_KEY], depth)
|
||||||
|
|
||||||
|
if not seen_symbol_with_path:
|
||||||
|
logging.warning('Symbols lack paths. Data will not be structured.')
|
||||||
|
|
||||||
|
# The (no path) bucket can be extremely large if we failed to get
|
||||||
|
# path information. Split it into subgroups if needed.
|
||||||
|
SplitNoPathBucket(result)
|
||||||
|
|
||||||
|
largest_list_len = MakeChildrenDictsIntoLists(result)
|
||||||
|
|
||||||
|
if largest_list_len > BIG_BUCKET_LIMIT:
|
||||||
|
logging.warning('There are sections with %d nodes. '
|
||||||
|
'Results might be unusable.' % largest_list_len)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
# Skia added: summarizes tree size by symbol type for the given root node.
|
||||||
|
# Returns a dict keyed by symbol type, and value the type's overall size.
|
||||||
|
# e.g., {"t": 12345, "W": 543}.
|
||||||
|
def GetTreeSizes(node):
|
||||||
|
if 'children' not in node or not node['children']:
|
||||||
|
return {node['t']: node['value']}
|
||||||
|
dic = {}
|
||||||
|
for i in node['children']:
|
||||||
|
for k, v in GetTreeSizes(i).items():
|
||||||
|
dic.setdefault(k, 0)
|
||||||
|
dic[k] += v
|
||||||
|
|
||||||
|
return dic
|
||||||
|
|
||||||
|
|
||||||
|
# Skia added: creates dict to be converted to JSON in bench format.
|
||||||
|
# See top of file for the structure description.
|
||||||
|
def GetBenchDict(githash, tree_root):
|
||||||
|
dic = {'gitHash': githash,
|
||||||
|
'key': {'source_type': 'binarysize'},
|
||||||
|
'results': {},}
|
||||||
|
for i in tree_root['children']:
|
||||||
|
if '(No Path)' == i['n']: # Already at symbol summary level.
|
||||||
|
for k, v in GetTreeSizes(i).items():
|
||||||
|
dic['results']['no_path_' + SYMBOL_MAP[k]] = {
|
||||||
|
'memory': {
|
||||||
|
'bytes': v,
|
||||||
|
'options': {'path': 'no_path',
|
||||||
|
'symbol': SYMBOL_MAP[k],},}}
|
||||||
|
else: # We need to go deeper.
|
||||||
|
for c in i['children']:
|
||||||
|
path = i['n'] + '_' + c['n']
|
||||||
|
for k, v in GetTreeSizes(c).items():
|
||||||
|
dic['results'][path + '_' + SYMBOL_MAP[k]] = {
|
||||||
|
'memory': {
|
||||||
|
'bytes': v,
|
||||||
|
'options': {'path': path,
|
||||||
|
'symbol': SYMBOL_MAP[k],}}}
|
||||||
|
|
||||||
|
return dic
|
||||||
|
|
||||||
|
|
||||||
|
# Skia added: constructs 'gsutil cp' subprocess command list.
|
||||||
|
def GetGsCopyCommandList(gsutil, src, dst):
|
||||||
|
return [gsutil, '-h', 'Content-Type:application/json', 'cp', '-a',
|
||||||
|
'public-read', src, dst]
|
||||||
|
|
||||||
|
|
||||||
|
def DumpCompactTree(symbols, symbol_path_origin_dir, ha, ts, issue, gsutil):
|
||||||
|
tree_root = MakeCompactTree(symbols, symbol_path_origin_dir)
|
||||||
|
json_data = {'tree_data': tree_root,
|
||||||
|
'githash': ha,
|
||||||
|
'commit_ts': ts,
|
||||||
|
'key': {'source_type': 'binary_size'},
|
||||||
|
'total_size': sum(GetTreeSizes(tree_root).values()),}
|
||||||
|
tmpfile = tempfile.NamedTemporaryFile(delete=False).name
|
||||||
|
with open(tmpfile, 'w') as out:
|
||||||
|
# Use separators without whitespace to get a smaller file.
|
||||||
|
json.dump(json_data, out, separators=(',', ':'))
|
||||||
|
|
||||||
|
GS_PREFIX = 'gs://skia-perf/'
|
||||||
|
# Writes to Google Storage for visualization.
|
||||||
|
subprocess.check_call(GetGsCopyCommandList(
|
||||||
|
gsutil, tmpfile, GS_PREFIX + 'size/' + ha + '.json'))
|
||||||
|
# Updates the latest data.
|
||||||
|
if not issue:
|
||||||
|
subprocess.check_call(GetGsCopyCommandList(gsutil, tmpfile,
|
||||||
|
GS_PREFIX + 'size/latest.json'))
|
||||||
|
# Writes an extra copy using year/month/day/hour path for easy ingestion.
|
||||||
|
with open(tmpfile, 'w') as out:
|
||||||
|
json.dump(GetBenchDict(ha, tree_root), out, separators=(',', ':'))
|
||||||
|
now = datetime.datetime.utcnow()
|
||||||
|
ingest_path = '/'.join(('nano-json-v1', str(now.year).zfill(4),
|
||||||
|
str(now.month).zfill(2), str(now.day).zfill(2),
|
||||||
|
str(now.hour).zfill(2)))
|
||||||
|
if issue:
|
||||||
|
ingest_path = '/'.join('trybot', ingest_path, issue)
|
||||||
|
subprocess.check_call(GetGsCopyCommandList(gsutil, tmpfile,
|
||||||
|
GS_PREFIX + ingest_path + '/binarysize_' + ha + '.json'))
|
||||||
|
|
||||||
|
|
||||||
|
def MakeSourceMap(symbols):
|
||||||
|
sources = {}
|
||||||
|
for _sym, _symbol_type, size, path in symbols:
|
||||||
|
key = None
|
||||||
|
if path:
|
||||||
|
key = os.path.normpath(path)
|
||||||
|
else:
|
||||||
|
key = '[no path]'
|
||||||
|
if key not in sources:
|
||||||
|
sources[key] = {'path': path, 'symbol_count': 0, 'size': 0}
|
||||||
|
record = sources[key]
|
||||||
|
record['size'] += size
|
||||||
|
record['symbol_count'] += 1
|
||||||
|
return sources
|
||||||
|
|
||||||
|
|
||||||
|
# Regex for parsing "nm" output. A sample line looks like this:
|
||||||
|
# 0167b39c 00000018 t ACCESS_DESCRIPTION_free /path/file.c:95
|
||||||
|
#
|
||||||
|
# The fields are: address, size, type, name, source location
|
||||||
|
# Regular expression explained ( see also: https://xkcd.com/208 ):
|
||||||
|
# ([0-9a-f]{8,}+) The address
|
||||||
|
# [\s]+ Whitespace separator
|
||||||
|
# ([0-9a-f]{8,}+) The size. From here on out it's all optional.
|
||||||
|
# [\s]+ Whitespace separator
|
||||||
|
# (\S?) The symbol type, which is any non-whitespace char
|
||||||
|
# [\s*] Whitespace separator
|
||||||
|
# ([^\t]*) Symbol name, any non-tab character (spaces ok!)
|
||||||
|
# [\t]? Tab separator
|
||||||
|
# (.*) The location (filename[:linennum|?][ (discriminator n)]
|
||||||
|
sNmPattern = re.compile(
|
||||||
|
r'([0-9a-f]{8,})[\s]+([0-9a-f]{8,})[\s]*(\S?)[\s*]([^\t]*)[\t]?(.*)')
|
||||||
|
|
||||||
|
class Progress():
|
||||||
|
def __init__(self):
|
||||||
|
self.count = 0
|
||||||
|
self.skip_count = 0
|
||||||
|
self.collisions = 0
|
||||||
|
self.time_last_output = time.time()
|
||||||
|
self.count_last_output = 0
|
||||||
|
self.disambiguations = 0
|
||||||
|
self.was_ambiguous = 0
|
||||||
|
|
||||||
|
|
||||||
|
def RunElfSymbolizer(outfile, library, addr2line_binary, nm_binary, jobs,
|
||||||
|
disambiguate, src_path):
|
||||||
|
nm_output = RunNm(library, nm_binary)
|
||||||
|
nm_output_lines = nm_output.splitlines()
|
||||||
|
nm_output_lines_len = len(nm_output_lines)
|
||||||
|
address_symbol = {}
|
||||||
|
progress = Progress()
|
||||||
|
def map_address_symbol(symbol, addr):
|
||||||
|
progress.count += 1
|
||||||
|
if addr in address_symbol:
|
||||||
|
# 'Collision between %s and %s.' % (str(symbol.name),
|
||||||
|
# str(address_symbol[addr].name))
|
||||||
|
progress.collisions += 1
|
||||||
|
else:
|
||||||
|
if symbol.disambiguated:
|
||||||
|
progress.disambiguations += 1
|
||||||
|
if symbol.was_ambiguous:
|
||||||
|
progress.was_ambiguous += 1
|
||||||
|
|
||||||
|
address_symbol[addr] = symbol
|
||||||
|
|
||||||
|
progress_output()
|
||||||
|
|
||||||
|
def progress_output():
|
||||||
|
progress_chunk = 100
|
||||||
|
if progress.count % progress_chunk == 0:
|
||||||
|
time_now = time.time()
|
||||||
|
time_spent = time_now - progress.time_last_output
|
||||||
|
if time_spent > 1.0:
|
||||||
|
# Only output at most once per second.
|
||||||
|
progress.time_last_output = time_now
|
||||||
|
chunk_size = progress.count - progress.count_last_output
|
||||||
|
progress.count_last_output = progress.count
|
||||||
|
if time_spent > 0:
|
||||||
|
speed = chunk_size / time_spent
|
||||||
|
else:
|
||||||
|
speed = 0
|
||||||
|
progress_percent = (100.0 * (progress.count + progress.skip_count) /
|
||||||
|
nm_output_lines_len)
|
||||||
|
disambiguation_percent = 0
|
||||||
|
if progress.disambiguations != 0:
|
||||||
|
disambiguation_percent = (100.0 * progress.disambiguations /
|
||||||
|
progress.was_ambiguous)
|
||||||
|
|
||||||
|
sys.stdout.write('\r%.1f%%: Looked up %d symbols (%d collisions, '
|
||||||
|
'%d disambiguations where %.1f%% succeeded)'
|
||||||
|
' - %.1f lookups/s.' %
|
||||||
|
(progress_percent, progress.count, progress.collisions,
|
||||||
|
progress.disambiguations, disambiguation_percent, speed))
|
||||||
|
|
||||||
|
# In case disambiguation was disabled, we remove the source path (which upon
|
||||||
|
# being set signals the symbolizer to enable disambiguation)
|
||||||
|
if not disambiguate:
|
||||||
|
src_path = None
|
||||||
|
symbol_path_origin_dir = os.path.dirname(library)
|
||||||
|
# Skia specific.
|
||||||
|
symbol_path_prefix = symbol_path_origin_dir.replace(LIBSKIA_RELATIVE_PATH, '')
|
||||||
|
symbolizer = elf_symbolizer.ELFSymbolizer(library, addr2line_binary,
|
||||||
|
map_address_symbol,
|
||||||
|
max_concurrent_jobs=jobs,
|
||||||
|
source_root_path=src_path,
|
||||||
|
prefix_to_remove=symbol_path_prefix)
|
||||||
|
user_interrupted = False
|
||||||
|
try:
|
||||||
|
for line in nm_output_lines:
|
||||||
|
match = sNmPattern.match(line)
|
||||||
|
if match:
|
||||||
|
location = match.group(5)
|
||||||
|
if not location:
|
||||||
|
addr = int(match.group(1), 16)
|
||||||
|
size = int(match.group(2), 16)
|
||||||
|
if addr in address_symbol: # Already looked up, shortcut
|
||||||
|
# ELFSymbolizer.
|
||||||
|
map_address_symbol(address_symbol[addr], addr)
|
||||||
|
continue
|
||||||
|
elif size == 0:
|
||||||
|
# Save time by not looking up empty symbols (do they even exist?)
|
||||||
|
print('Empty symbol: ' + line)
|
||||||
|
else:
|
||||||
|
symbolizer.SymbolizeAsync(addr, addr)
|
||||||
|
continue
|
||||||
|
|
||||||
|
progress.skip_count += 1
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
user_interrupted = True
|
||||||
|
print('Interrupting - killing subprocesses. Please wait.')
|
||||||
|
|
||||||
|
try:
|
||||||
|
symbolizer.Join()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
# Don't want to abort here since we will be finished in a few seconds.
|
||||||
|
user_interrupted = True
|
||||||
|
print('Patience you must have my young padawan.')
|
||||||
|
|
||||||
|
print ''
|
||||||
|
|
||||||
|
if user_interrupted:
|
||||||
|
print('Skipping the rest of the file mapping. '
|
||||||
|
'Output will not be fully classified.')
|
||||||
|
|
||||||
|
symbol_path_origin_dir = os.path.dirname(library)
|
||||||
|
# Skia specific: path prefix to strip.
|
||||||
|
symbol_path_prefix = symbol_path_origin_dir.replace(LIBSKIA_RELATIVE_PATH, '')
|
||||||
|
|
||||||
|
with open(outfile, 'w') as out:
|
||||||
|
for line in nm_output_lines:
|
||||||
|
match = sNmPattern.match(line)
|
||||||
|
if match:
|
||||||
|
location = match.group(5)
|
||||||
|
if not location:
|
||||||
|
addr = int(match.group(1), 16)
|
||||||
|
symbol = address_symbol.get(addr)
|
||||||
|
if symbol is not None:
|
||||||
|
path = '??'
|
||||||
|
if symbol.source_path is not None:
|
||||||
|
path = symbol.source_path.replace(symbol_path_prefix, '')
|
||||||
|
line_number = 0
|
||||||
|
if symbol.source_line is not None:
|
||||||
|
line_number = symbol.source_line
|
||||||
|
out.write('%s\t%s:%d\n' % (line, path, line_number))
|
||||||
|
continue
|
||||||
|
|
||||||
|
out.write('%s\n' % line)
|
||||||
|
|
||||||
|
print('%d symbols in the results.' % len(address_symbol))
|
||||||
|
|
||||||
|
|
||||||
|
def RunNm(binary, nm_binary):
|
||||||
|
cmd = [nm_binary, '-C', '--print-size', '--size-sort', '--reverse-sort',
|
||||||
|
binary]
|
||||||
|
nm_process = subprocess.Popen(cmd,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE)
|
||||||
|
(process_output, err_output) = nm_process.communicate()
|
||||||
|
|
||||||
|
if nm_process.returncode != 0:
|
||||||
|
if err_output:
|
||||||
|
raise Exception, err_output
|
||||||
|
else:
|
||||||
|
raise Exception, process_output
|
||||||
|
|
||||||
|
return process_output
|
||||||
|
|
||||||
|
|
||||||
|
def GetNmSymbols(nm_infile, outfile, library, jobs, verbose,
|
||||||
|
addr2line_binary, nm_binary, disambiguate, src_path):
|
||||||
|
if nm_infile is None:
|
||||||
|
if outfile is None:
|
||||||
|
outfile = tempfile.NamedTemporaryFile(delete=False).name
|
||||||
|
|
||||||
|
if verbose:
|
||||||
|
print 'Running parallel addr2line, dumping symbols to ' + outfile
|
||||||
|
RunElfSymbolizer(outfile, library, addr2line_binary, nm_binary, jobs,
|
||||||
|
disambiguate, src_path)
|
||||||
|
|
||||||
|
nm_infile = outfile
|
||||||
|
|
||||||
|
elif verbose:
|
||||||
|
print 'Using nm input from ' + nm_infile
|
||||||
|
with file(nm_infile, 'r') as infile:
|
||||||
|
return list(binary_size_utils.ParseNm(infile))
|
||||||
|
|
||||||
|
|
||||||
|
PAK_RESOURCE_ID_TO_STRING = { "inited": False }
|
||||||
|
|
||||||
|
def LoadPakIdsFromResourceFile(filename):
|
||||||
|
"""Given a file name, it loads everything that looks like a resource id
|
||||||
|
into PAK_RESOURCE_ID_TO_STRING."""
|
||||||
|
with open(filename) as resource_header:
|
||||||
|
for line in resource_header:
|
||||||
|
if line.startswith("#define "):
|
||||||
|
line_data = line.split()
|
||||||
|
if len(line_data) == 3:
|
||||||
|
try:
|
||||||
|
resource_number = int(line_data[2])
|
||||||
|
resource_name = line_data[1]
|
||||||
|
PAK_RESOURCE_ID_TO_STRING[resource_number] = resource_name
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def GetReadablePakResourceName(pak_file, resource_id):
|
||||||
|
"""Pak resources have a numeric identifier. It is not helpful when
|
||||||
|
trying to locate where footprint is generated. This does its best to
|
||||||
|
map the number to a usable string."""
|
||||||
|
if not PAK_RESOURCE_ID_TO_STRING['inited']:
|
||||||
|
# Try to find resource header files generated by grit when
|
||||||
|
# building the pak file. We'll look for files named *resources.h"
|
||||||
|
# and lines of the type:
|
||||||
|
# #define MY_RESOURCE_JS 1234
|
||||||
|
PAK_RESOURCE_ID_TO_STRING['inited'] = True
|
||||||
|
gen_dir = os.path.join(os.path.dirname(pak_file), 'gen')
|
||||||
|
if os.path.isdir(gen_dir):
|
||||||
|
for dirname, _dirs, files in os.walk(gen_dir):
|
||||||
|
for filename in files:
|
||||||
|
if filename.endswith('resources.h'):
|
||||||
|
LoadPakIdsFromResourceFile(os.path.join(dirname, filename))
|
||||||
|
return PAK_RESOURCE_ID_TO_STRING.get(resource_id,
|
||||||
|
'Pak Resource %d' % resource_id)
|
||||||
|
|
||||||
|
def AddPakData(symbols, pak_file):
|
||||||
|
"""Adds pseudo-symbols from a pak file."""
|
||||||
|
pak_file = os.path.abspath(pak_file)
|
||||||
|
with open(pak_file, 'rb') as pak:
|
||||||
|
data = pak.read()
|
||||||
|
|
||||||
|
PAK_FILE_VERSION = 4
|
||||||
|
HEADER_LENGTH = 2 * 4 + 1 # Two uint32s. (file version, number of entries)
|
||||||
|
# and one uint8 (encoding of text resources)
|
||||||
|
INDEX_ENTRY_SIZE = 2 + 4 # Each entry is a uint16 and a uint32.
|
||||||
|
version, num_entries, _encoding = struct.unpack('<IIB', data[:HEADER_LENGTH])
|
||||||
|
assert version == PAK_FILE_VERSION, ('Unsupported pak file '
|
||||||
|
'version (%d) in %s. Only '
|
||||||
|
'support version %d' %
|
||||||
|
(version, pak_file, PAK_FILE_VERSION))
|
||||||
|
if num_entries > 0:
|
||||||
|
# Read the index and data.
|
||||||
|
data = data[HEADER_LENGTH:]
|
||||||
|
for _ in range(num_entries):
|
||||||
|
resource_id, offset = struct.unpack('<HI', data[:INDEX_ENTRY_SIZE])
|
||||||
|
data = data[INDEX_ENTRY_SIZE:]
|
||||||
|
_next_id, next_offset = struct.unpack('<HI', data[:INDEX_ENTRY_SIZE])
|
||||||
|
resource_size = next_offset - offset
|
||||||
|
|
||||||
|
symbol_name = GetReadablePakResourceName(pak_file, resource_id)
|
||||||
|
symbol_path = pak_file
|
||||||
|
symbol_type = 'd' # Data. Approximation.
|
||||||
|
symbol_size = resource_size
|
||||||
|
symbols.append((symbol_name, symbol_type, symbol_size, symbol_path))
|
||||||
|
|
||||||
|
def _find_in_system_path(binary):
|
||||||
|
"""Locate the full path to binary in the system path or return None
|
||||||
|
if not found."""
|
||||||
|
system_path = os.environ["PATH"].split(os.pathsep)
|
||||||
|
for path in system_path:
|
||||||
|
binary_path = os.path.join(path, binary)
|
||||||
|
if os.path.isfile(binary_path):
|
||||||
|
return binary_path
|
||||||
|
return None
|
||||||
|
|
||||||
|
def CheckDebugFormatSupport(library, addr2line_binary):
|
||||||
|
"""Kills the program if debug data is in an unsupported format.
|
||||||
|
|
||||||
|
There are two common versions of the DWARF debug formats and
|
||||||
|
since we are right now transitioning from DWARF2 to newer formats,
|
||||||
|
it's possible to have a mix of tools that are not compatible. Detect
|
||||||
|
that and abort rather than produce meaningless output."""
|
||||||
|
tool_output = subprocess.check_output([addr2line_binary, '--version'])
|
||||||
|
version_re = re.compile(r'^GNU [^ ]+ .* (\d+).(\d+).*?$', re.M)
|
||||||
|
parsed_output = version_re.match(tool_output)
|
||||||
|
major = int(parsed_output.group(1))
|
||||||
|
minor = int(parsed_output.group(2))
|
||||||
|
supports_dwarf4 = major > 2 or major == 2 and minor > 22
|
||||||
|
|
||||||
|
if supports_dwarf4:
|
||||||
|
return
|
||||||
|
|
||||||
|
print('Checking version of debug information in %s.' % library)
|
||||||
|
debug_info = subprocess.check_output(['readelf', '--debug-dump=info',
|
||||||
|
'--dwarf-depth=1', library])
|
||||||
|
dwarf_version_re = re.compile(r'^\s+Version:\s+(\d+)$', re.M)
|
||||||
|
parsed_dwarf_format_output = dwarf_version_re.search(debug_info)
|
||||||
|
version = int(parsed_dwarf_format_output.group(1))
|
||||||
|
if version > 2:
|
||||||
|
print('The supplied tools only support DWARF2 debug data but the binary\n' +
|
||||||
|
'uses DWARF%d. Update the tools or compile the binary\n' % version +
|
||||||
|
'with -gdwarf-2.')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
usage = """%prog [options]
|
||||||
|
|
||||||
|
Runs a spatial analysis on a given library, looking up the source locations
|
||||||
|
of its symbols and calculating how much space each directory, source file,
|
||||||
|
and so on is taking. The result is a report that can be used to pinpoint
|
||||||
|
sources of large portions of the binary, etceteras.
|
||||||
|
|
||||||
|
Under normal circumstances, you only need to pass two arguments, thusly:
|
||||||
|
|
||||||
|
%prog --library /path/to/library --destdir /path/to/output
|
||||||
|
|
||||||
|
In this mode, the program will dump the symbols from the specified library
|
||||||
|
and map those symbols back to source locations, producing a web-based
|
||||||
|
report in the specified output directory.
|
||||||
|
|
||||||
|
Other options are available via '--help'.
|
||||||
|
"""
|
||||||
|
parser = optparse.OptionParser(usage=usage)
|
||||||
|
parser.add_option('--nm-in', metavar='PATH',
|
||||||
|
help='if specified, use nm input from <path> instead of '
|
||||||
|
'generating it. Note that source locations should be '
|
||||||
|
'present in the file; i.e., no addr2line symbol lookups '
|
||||||
|
'will be performed when this option is specified. '
|
||||||
|
'Mutually exclusive with --library.')
|
||||||
|
parser.add_option('--destdir', metavar='PATH',
|
||||||
|
help='write output to the specified directory. An HTML '
|
||||||
|
'report is generated here along with supporting files; '
|
||||||
|
'any existing report will be overwritten. Not used in '
|
||||||
|
'Skia.')
|
||||||
|
parser.add_option('--library', metavar='PATH',
|
||||||
|
help='if specified, process symbols in the library at '
|
||||||
|
'the specified path. Mutually exclusive with --nm-in.')
|
||||||
|
parser.add_option('--pak', metavar='PATH',
|
||||||
|
help='if specified, includes the contents of the '
|
||||||
|
'specified *.pak file in the output.')
|
||||||
|
parser.add_option('--nm-binary',
|
||||||
|
help='use the specified nm binary to analyze library. '
|
||||||
|
'This is to be used when the nm in the path is not for '
|
||||||
|
'the right architecture or of the right version.')
|
||||||
|
parser.add_option('--addr2line-binary',
|
||||||
|
help='use the specified addr2line binary to analyze '
|
||||||
|
'library. This is to be used when the addr2line in '
|
||||||
|
'the path is not for the right architecture or '
|
||||||
|
'of the right version.')
|
||||||
|
parser.add_option('--jobs', type='int',
|
||||||
|
help='number of jobs to use for the parallel '
|
||||||
|
'addr2line processing pool; defaults to 1. More '
|
||||||
|
'jobs greatly improve throughput but eat RAM like '
|
||||||
|
'popcorn, and take several gigabytes each. Start low '
|
||||||
|
'and ramp this number up until your machine begins to '
|
||||||
|
'struggle with RAM. '
|
||||||
|
'This argument is only valid when using --library.')
|
||||||
|
parser.add_option('-v', dest='verbose', action='store_true',
|
||||||
|
help='be verbose, printing lots of status information.')
|
||||||
|
parser.add_option('--nm-out', metavar='PATH',
|
||||||
|
help='keep the nm output file, and store it at the '
|
||||||
|
'specified path. This is useful if you want to see the '
|
||||||
|
'fully processed nm output after the symbols have been '
|
||||||
|
'mapped to source locations. By default, a tempfile is '
|
||||||
|
'used and is deleted when the program terminates.'
|
||||||
|
'This argument is only valid when using --library.')
|
||||||
|
parser.add_option('--legacy', action='store_true',
|
||||||
|
help='emit legacy binary size report instead of modern')
|
||||||
|
parser.add_option('--disable-disambiguation', action='store_true',
|
||||||
|
help='disables the disambiguation process altogether,'
|
||||||
|
' NOTE: this may, depending on your toolchain, produce'
|
||||||
|
' output with some symbols at the top layer if addr2line'
|
||||||
|
' could not get the entire source path.')
|
||||||
|
parser.add_option('--source-path', default='./',
|
||||||
|
help='the path to the source code of the output binary, '
|
||||||
|
'default set to current directory. Used in the'
|
||||||
|
' disambiguation process.')
|
||||||
|
parser.add_option('--githash', default='latest',
|
||||||
|
help='Git hash for the binary version. Added by Skia.')
|
||||||
|
parser.add_option('--commit_ts', type='int', default=-1,
|
||||||
|
help='Timestamp for the commit. Added by Skia.')
|
||||||
|
parser.add_option('--issue_number', default='',
|
||||||
|
help='The trybot issue number in string. Added by Skia.')
|
||||||
|
parser.add_option('--gsutil_path', default='gsutil',
|
||||||
|
help='Path to gsutil binary. Added by Skia.')
|
||||||
|
opts, _args = parser.parse_args()
|
||||||
|
|
||||||
|
if ((not opts.library) and (not opts.nm_in)) or (opts.library and opts.nm_in):
|
||||||
|
parser.error('exactly one of --library or --nm-in is required')
|
||||||
|
if (opts.nm_in):
|
||||||
|
if opts.jobs:
|
||||||
|
print >> sys.stderr, ('WARNING: --jobs has no effect '
|
||||||
|
'when used with --nm-in')
|
||||||
|
if not opts.jobs:
|
||||||
|
# Use the number of processors but cap between 2 and 4 since raw
|
||||||
|
# CPU power isn't the limiting factor. It's I/O limited, memory
|
||||||
|
# bus limited and available-memory-limited. Too many processes and
|
||||||
|
# the computer will run out of memory and it will be slow.
|
||||||
|
opts.jobs = max(2, min(4, str(multiprocessing.cpu_count())))
|
||||||
|
|
||||||
|
if opts.addr2line_binary:
|
||||||
|
assert os.path.isfile(opts.addr2line_binary)
|
||||||
|
addr2line_binary = opts.addr2line_binary
|
||||||
|
else:
|
||||||
|
addr2line_binary = _find_in_system_path('addr2line')
|
||||||
|
assert addr2line_binary, 'Unable to find addr2line in the path. '\
|
||||||
|
'Use --addr2line-binary to specify location.'
|
||||||
|
|
||||||
|
if opts.nm_binary:
|
||||||
|
assert os.path.isfile(opts.nm_binary)
|
||||||
|
nm_binary = opts.nm_binary
|
||||||
|
else:
|
||||||
|
nm_binary = _find_in_system_path('nm')
|
||||||
|
assert nm_binary, 'Unable to find nm in the path. Use --nm-binary '\
|
||||||
|
'to specify location.'
|
||||||
|
|
||||||
|
if opts.pak:
|
||||||
|
assert os.path.isfile(opts.pak), 'Could not find ' % opts.pak
|
||||||
|
|
||||||
|
print('addr2line: %s' % addr2line_binary)
|
||||||
|
print('nm: %s' % nm_binary)
|
||||||
|
|
||||||
|
if opts.library:
|
||||||
|
CheckDebugFormatSupport(opts.library, addr2line_binary)
|
||||||
|
|
||||||
|
symbols = GetNmSymbols(opts.nm_in, opts.nm_out, opts.library,
|
||||||
|
opts.jobs, opts.verbose is True,
|
||||||
|
addr2line_binary, nm_binary,
|
||||||
|
opts.disable_disambiguation is None,
|
||||||
|
opts.source_path)
|
||||||
|
|
||||||
|
if opts.pak:
|
||||||
|
AddPakData(symbols, opts.pak)
|
||||||
|
|
||||||
|
if opts.legacy: # legacy report
|
||||||
|
print 'Do Not set legacy flag.'
|
||||||
|
|
||||||
|
else: # modern report
|
||||||
|
if opts.library:
|
||||||
|
symbol_path_origin_dir = os.path.dirname(os.path.abspath(opts.library))
|
||||||
|
else:
|
||||||
|
# Just a guess. Hopefully all paths in the input file are absolute.
|
||||||
|
symbol_path_origin_dir = os.path.abspath(os.getcwd())
|
||||||
|
DumpCompactTree(symbols, symbol_path_origin_dir, opts.githash,
|
||||||
|
opts.commit_ts, opts.issue_number, opts.gsutil_path)
|
||||||
|
print 'Report data uploaded to GS.'
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main())
|
11
infra/bots/recipe_modules/ct/__init__.py
Normal file
11
infra/bots/recipe_modules/ct/__init__.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'build/gsutil',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'run',
|
||||||
|
]
|
51
infra/bots/recipe_modules/ct/api.py
Normal file
51
infra/bots/recipe_modules/ct/api.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
class CTApi(recipe_api.RecipeApi):
|
||||||
|
"""Provides steps to run CT tasks."""
|
||||||
|
|
||||||
|
CT_GS_BUCKET = 'cluster-telemetry'
|
||||||
|
|
||||||
|
def download_swarming_skps(self, page_type, slave_num, skps_chromium_build,
|
||||||
|
dest_dir, start_range, num_skps):
|
||||||
|
"""Downloads SKPs corresponding to the specified page type, slave and build.
|
||||||
|
|
||||||
|
The SKPs are stored in Google Storage in the following dirs in CT_GS_BUCKET:
|
||||||
|
/swarming/skps/${page_type}/${skps_chromium_build}/{start_range..end_num}/
|
||||||
|
The SKPs are downloaded into subdirectories in the dest_dir.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
api: RecipeApi instance.
|
||||||
|
page_type: str. The CT page type. Eg: 1k, 10k.
|
||||||
|
slave_num: int. The number of the swarming bot.
|
||||||
|
skps_chromium_build: str. The build the SKPs were captured from.
|
||||||
|
dest_dir: path obj. The directory to download SKPs into.
|
||||||
|
start_range: int. The subdirectory number to start from.
|
||||||
|
num_skps: int. The total number of SKPs to download starting with
|
||||||
|
start_range.
|
||||||
|
"""
|
||||||
|
slave_dest_dir = dest_dir.join('slave%s' % slave_num )
|
||||||
|
remote_dir = 'gs://%s/swarming/skps/%s/%s' % (
|
||||||
|
self.CT_GS_BUCKET, page_type, skps_chromium_build)
|
||||||
|
|
||||||
|
# Delete and recreate the local dir.
|
||||||
|
self.m.run.rmtree(slave_dest_dir)
|
||||||
|
self.m.file.makedirs(self.m.path.basename(slave_dest_dir), slave_dest_dir)
|
||||||
|
|
||||||
|
# Populate the empty local dir.
|
||||||
|
gsutil_args = ['-m', 'cp']
|
||||||
|
for i in range(start_range, start_range+num_skps):
|
||||||
|
gsutil_args.append('%s/%s/*.skp' % (str(remote_dir), i))
|
||||||
|
gsutil_args.append(str(slave_dest_dir))
|
||||||
|
try:
|
||||||
|
self.m.gsutil(gsutil_args, use_retry_wrapper=False)
|
||||||
|
except self.m.step.StepFailure: # pragma: nocover
|
||||||
|
# Some subdirectories might have no SKPs in them.
|
||||||
|
pass
|
17
infra/bots/recipe_modules/flavor/__init__.py
Normal file
17
infra/bots/recipe_modules/flavor/__init__.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/adb',
|
||||||
|
'build/file',
|
||||||
|
'builder_name_schema',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
219
infra/bots/recipe_modules/flavor/api.py
Normal file
219
infra/bots/recipe_modules/flavor/api.py
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
from . import default_flavor
|
||||||
|
from . import gn_android_flavor
|
||||||
|
from . import gn_flavor
|
||||||
|
from . import ios_flavor
|
||||||
|
from . import pdfium_flavor
|
||||||
|
from . import valgrind_flavor
|
||||||
|
|
||||||
|
|
||||||
|
TEST_EXPECTED_SKP_VERSION = '42'
|
||||||
|
TEST_EXPECTED_SVG_VERSION = '42'
|
||||||
|
TEST_EXPECTED_SK_IMAGE_VERSION = '42'
|
||||||
|
|
||||||
|
VERSION_FILE_SK_IMAGE = 'SK_IMAGE_VERSION'
|
||||||
|
VERSION_FILE_SKP = 'SKP_VERSION'
|
||||||
|
VERSION_FILE_SVG = 'SVG_VERSION'
|
||||||
|
|
||||||
|
VERSION_NONE = -1
|
||||||
|
|
||||||
|
def is_android(builder_cfg):
|
||||||
|
return 'Android' in builder_cfg.get('extra_config', '')
|
||||||
|
|
||||||
|
|
||||||
|
def is_ios(builder_cfg):
|
||||||
|
return ('iOS' == builder_cfg.get('extra_config', '') or
|
||||||
|
builder_cfg.get('os') == 'iOS')
|
||||||
|
|
||||||
|
|
||||||
|
def is_pdfium(builder_cfg):
|
||||||
|
return 'PDFium' in builder_cfg.get('extra_config', '')
|
||||||
|
|
||||||
|
|
||||||
|
def is_valgrind(builder_cfg):
|
||||||
|
return 'Valgrind' in builder_cfg.get('extra_config', '')
|
||||||
|
|
||||||
|
|
||||||
|
class SkiaFlavorApi(recipe_api.RecipeApi):
|
||||||
|
def get_flavor(self, builder_cfg):
|
||||||
|
"""Return a flavor utils object specific to the given builder."""
|
||||||
|
if is_android(builder_cfg):
|
||||||
|
return gn_android_flavor.GNAndroidFlavorUtils(self.m)
|
||||||
|
elif is_ios(builder_cfg):
|
||||||
|
return ios_flavor.iOSFlavorUtils(self.m)
|
||||||
|
elif is_pdfium(builder_cfg):
|
||||||
|
return pdfium_flavor.PDFiumFlavorUtils(self.m)
|
||||||
|
elif is_valgrind(builder_cfg):
|
||||||
|
return valgrind_flavor.ValgrindFlavorUtils(self.m)
|
||||||
|
else:
|
||||||
|
return gn_flavor.GNFlavorUtils(self.m)
|
||||||
|
|
||||||
|
def setup(self):
|
||||||
|
self._f = self.get_flavor(self.m.vars.builder_cfg)
|
||||||
|
|
||||||
|
def step(self, name, cmd, **kwargs):
|
||||||
|
return self._f.step(name, cmd, **kwargs)
|
||||||
|
|
||||||
|
def compile(self, target, **kwargs):
|
||||||
|
return self._f.compile(target, **kwargs)
|
||||||
|
|
||||||
|
def copy_extra_build_products(self, swarming_out_dir):
|
||||||
|
return self._f.copy_extra_build_products(swarming_out_dir)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def out_dir(self):
|
||||||
|
return self._f.out_dir
|
||||||
|
|
||||||
|
def device_path_join(self, *args):
|
||||||
|
return self._f.device_path_join(*args)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_device(self, host_dir, device_dir):
|
||||||
|
return self._f.copy_directory_contents_to_device(host_dir, device_dir)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_host(self, device_dir, host_dir):
|
||||||
|
return self._f.copy_directory_contents_to_host(device_dir, host_dir)
|
||||||
|
|
||||||
|
def copy_file_to_device(self, host_path, device_path):
|
||||||
|
return self._f.copy_file_to_device(host_path, device_path)
|
||||||
|
|
||||||
|
def create_clean_host_dir(self, path):
|
||||||
|
return self._f.create_clean_host_dir(path)
|
||||||
|
|
||||||
|
def create_clean_device_dir(self, path):
|
||||||
|
return self._f.create_clean_device_dir(path)
|
||||||
|
|
||||||
|
def read_file_on_device(self, path):
|
||||||
|
return self._f.read_file_on_device(path)
|
||||||
|
|
||||||
|
def remove_file_on_device(self, path):
|
||||||
|
return self._f.remove_file_on_device(path)
|
||||||
|
|
||||||
|
def install_everything(self):
|
||||||
|
self.install(skps=True, images=True, svgs=True, resources=True)
|
||||||
|
|
||||||
|
def install(self, skps=False, images=False, svgs=False, resources=False):
|
||||||
|
self._f.install()
|
||||||
|
self.device_dirs = self._f.device_dirs
|
||||||
|
|
||||||
|
# TODO(borenet): Only copy files which have changed.
|
||||||
|
if resources:
|
||||||
|
self.copy_directory_contents_to_device(
|
||||||
|
self.m.vars.resource_dir,
|
||||||
|
self.device_dirs.resource_dir)
|
||||||
|
|
||||||
|
if skps:
|
||||||
|
self._copy_skps()
|
||||||
|
if images:
|
||||||
|
self._copy_images()
|
||||||
|
if svgs:
|
||||||
|
self._copy_svgs()
|
||||||
|
|
||||||
|
def cleanup_steps(self):
|
||||||
|
return self._f.cleanup_steps()
|
||||||
|
|
||||||
|
def _copy_dir(self, host_version, version_file, tmp_dir,
|
||||||
|
host_path, device_path, test_expected_version,
|
||||||
|
test_actual_version):
|
||||||
|
actual_version_file = self.m.path.join(tmp_dir, version_file)
|
||||||
|
# Copy to device.
|
||||||
|
device_version_file = self.device_path_join(
|
||||||
|
self.device_dirs.tmp_dir, version_file)
|
||||||
|
if str(actual_version_file) != str(device_version_file):
|
||||||
|
try:
|
||||||
|
device_version = self.read_file_on_device(device_version_file)
|
||||||
|
except self.m.step.StepFailure:
|
||||||
|
device_version = VERSION_NONE
|
||||||
|
if device_version != host_version:
|
||||||
|
self.remove_file_on_device(device_version_file)
|
||||||
|
self.create_clean_device_dir(device_path)
|
||||||
|
self.copy_directory_contents_to_device(
|
||||||
|
host_path, device_path)
|
||||||
|
|
||||||
|
# Copy the new version file.
|
||||||
|
self.copy_file_to_device(actual_version_file, device_version_file)
|
||||||
|
|
||||||
|
def _copy_images(self):
|
||||||
|
"""Download and copy test images if needed."""
|
||||||
|
version_file = self.m.vars.infrabots_dir.join(
|
||||||
|
'assets', 'skimage', 'VERSION')
|
||||||
|
test_data = self.m.properties.get(
|
||||||
|
'test_downloaded_sk_image_version', TEST_EXPECTED_SK_IMAGE_VERSION)
|
||||||
|
version = self.m.run.readfile(
|
||||||
|
version_file,
|
||||||
|
name='Get downloaded skimage VERSION',
|
||||||
|
test_data=test_data).rstrip()
|
||||||
|
self.m.run.writefile(
|
||||||
|
self.m.path.join(self.m.vars.tmp_dir, VERSION_FILE_SK_IMAGE),
|
||||||
|
version)
|
||||||
|
self._copy_dir(
|
||||||
|
version,
|
||||||
|
VERSION_FILE_SK_IMAGE,
|
||||||
|
self.m.vars.tmp_dir,
|
||||||
|
self.m.vars.images_dir,
|
||||||
|
self.device_dirs.images_dir,
|
||||||
|
test_expected_version=self.m.properties.get(
|
||||||
|
'test_downloaded_sk_image_version',
|
||||||
|
TEST_EXPECTED_SK_IMAGE_VERSION),
|
||||||
|
test_actual_version=self.m.properties.get(
|
||||||
|
'test_downloaded_sk_image_version',
|
||||||
|
TEST_EXPECTED_SK_IMAGE_VERSION))
|
||||||
|
return version
|
||||||
|
|
||||||
|
def _copy_skps(self):
|
||||||
|
"""Download and copy the SKPs if needed."""
|
||||||
|
version_file = self.m.vars.infrabots_dir.join(
|
||||||
|
'assets', 'skp', 'VERSION')
|
||||||
|
test_data = self.m.properties.get(
|
||||||
|
'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION)
|
||||||
|
version = self.m.run.readfile(
|
||||||
|
version_file,
|
||||||
|
name='Get downloaded SKP VERSION',
|
||||||
|
test_data=test_data).rstrip()
|
||||||
|
self.m.run.writefile(
|
||||||
|
self.m.path.join(self.m.vars.tmp_dir, VERSION_FILE_SKP),
|
||||||
|
version)
|
||||||
|
self._copy_dir(
|
||||||
|
version,
|
||||||
|
VERSION_FILE_SKP,
|
||||||
|
self.m.vars.tmp_dir,
|
||||||
|
self.m.vars.local_skp_dir,
|
||||||
|
self.device_dirs.skp_dir,
|
||||||
|
test_expected_version=self.m.properties.get(
|
||||||
|
'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION),
|
||||||
|
test_actual_version=self.m.properties.get(
|
||||||
|
'test_downloaded_skp_version', TEST_EXPECTED_SKP_VERSION))
|
||||||
|
return version
|
||||||
|
|
||||||
|
def _copy_svgs(self):
|
||||||
|
"""Download and copy the SVGs if needed."""
|
||||||
|
version_file = self.m.vars.infrabots_dir.join(
|
||||||
|
'assets', 'svg', 'VERSION')
|
||||||
|
test_data = self.m.properties.get(
|
||||||
|
'test_downloaded_svg_version', TEST_EXPECTED_SVG_VERSION)
|
||||||
|
version = self.m.run.readfile(
|
||||||
|
version_file,
|
||||||
|
name='Get downloaded SVG VERSION',
|
||||||
|
test_data=test_data).rstrip()
|
||||||
|
self.m.run.writefile(
|
||||||
|
self.m.path.join(self.m.vars.tmp_dir, VERSION_FILE_SVG),
|
||||||
|
version)
|
||||||
|
self._copy_dir(
|
||||||
|
version,
|
||||||
|
VERSION_FILE_SVG,
|
||||||
|
self.m.vars.tmp_dir,
|
||||||
|
self.m.vars.local_svg_dir,
|
||||||
|
self.device_dirs.svg_dir,
|
||||||
|
test_expected_version=self.m.properties.get(
|
||||||
|
'test_downloaded_svg_version', TEST_EXPECTED_SVG_VERSION),
|
||||||
|
test_actual_version=self.m.properties.get(
|
||||||
|
'test_downloaded_svg_version', TEST_EXPECTED_SVG_VERSION))
|
||||||
|
return version
|
152
infra/bots/recipe_modules/flavor/default_flavor.py
Normal file
152
infra/bots/recipe_modules/flavor/default_flavor.py
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
# Copyright 2014 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
|
||||||
|
|
||||||
|
|
||||||
|
"""Default flavor utils class, used for desktop builders."""
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
WIN_TOOLCHAIN_DIR = 't'
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceDirs(object):
|
||||||
|
def __init__(self,
|
||||||
|
dm_dir,
|
||||||
|
perf_data_dir,
|
||||||
|
resource_dir,
|
||||||
|
images_dir,
|
||||||
|
skp_dir,
|
||||||
|
svg_dir,
|
||||||
|
tmp_dir):
|
||||||
|
self._dm_dir = dm_dir
|
||||||
|
self._perf_data_dir = perf_data_dir
|
||||||
|
self._resource_dir = resource_dir
|
||||||
|
self._images_dir = images_dir
|
||||||
|
self._skp_dir = skp_dir
|
||||||
|
self._svg_dir = svg_dir
|
||||||
|
self._tmp_dir = tmp_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def dm_dir(self):
|
||||||
|
"""Where DM writes."""
|
||||||
|
return self._dm_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def perf_data_dir(self):
|
||||||
|
return self._perf_data_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def resource_dir(self):
|
||||||
|
return self._resource_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def images_dir(self):
|
||||||
|
return self._images_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def skp_dir(self):
|
||||||
|
"""Holds SKP files that are consumed by RenderSKPs and BenchPictures."""
|
||||||
|
return self._skp_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def svg_dir(self):
|
||||||
|
return self._svg_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def tmp_dir(self):
|
||||||
|
return self._tmp_dir
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultFlavorUtils(object):
|
||||||
|
"""Utilities to be used by build steps.
|
||||||
|
|
||||||
|
The methods in this class define how certain high-level functions should
|
||||||
|
work. Each build step flavor should correspond to a subclass of
|
||||||
|
DefaultFlavorUtils which may override any of these functions as appropriate
|
||||||
|
for that flavor.
|
||||||
|
|
||||||
|
For example, the AndroidFlavorUtils will override the functions for
|
||||||
|
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, m):
|
||||||
|
self.m = m
|
||||||
|
self._chrome_path = None
|
||||||
|
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.m.path.exists(win_toolchain_asset_path):
|
||||||
|
self._win_toolchain_dir = self.m.vars.slave_dir
|
||||||
|
|
||||||
|
def copy_extra_build_products(self, swarming_out_dir):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def out_dir(self):
|
||||||
|
"""Flavor-specific out directory."""
|
||||||
|
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.m.path.join(*args)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_device(self, host_dir, device_dir):
|
||||||
|
"""Like shutil.copytree(), but for copying to a connected device."""
|
||||||
|
# For "normal" builders who don't have an attached device, we expect
|
||||||
|
# host_dir and device_dir to be the same.
|
||||||
|
if str(host_dir) != str(device_dir):
|
||||||
|
raise ValueError('For builders who do not have attached devices, copying '
|
||||||
|
'from host to device is undefined and only allowed if '
|
||||||
|
'host_path and device_path are the same (%s vs %s).' % (
|
||||||
|
str(host_dir), str(device_dir))) # pragma: no cover
|
||||||
|
|
||||||
|
def copy_directory_contents_to_host(self, device_dir, host_dir):
|
||||||
|
"""Like shutil.copytree(), but for copying from a connected device."""
|
||||||
|
# For "normal" builders who don't have an attached device, we expect
|
||||||
|
# host_dir and device_dir to be the same.
|
||||||
|
if str(host_dir) != str(device_dir):
|
||||||
|
raise ValueError('For builders who do not have attached devices, copying '
|
||||||
|
'from device to host is undefined and only allowed if '
|
||||||
|
'host_path and device_path are the same (%s vs %s).' % (
|
||||||
|
str(host_dir), str(device_dir))) # pragma: no cover
|
||||||
|
|
||||||
|
def copy_file_to_device(self, host_path, device_path):
|
||||||
|
"""Like shutil.copyfile, but for copying to a connected device."""
|
||||||
|
# For "normal" builders who don't have an attached device, we expect
|
||||||
|
# host_dir and device_dir to be the same.
|
||||||
|
if str(host_path) != str(device_path): # pragma: no cover
|
||||||
|
raise ValueError('For builders who do not have attached devices, copying '
|
||||||
|
'from host to device is undefined and only allowed if '
|
||||||
|
'host_path and device_path are the same (%s vs %s).' % (
|
||||||
|
str(host_path), str(device_path)))
|
||||||
|
|
||||||
|
def create_clean_device_dir(self, path):
|
||||||
|
"""Like shutil.rmtree() + os.makedirs(), but on a connected device."""
|
||||||
|
self.create_clean_host_dir(path)
|
||||||
|
|
||||||
|
def create_clean_host_dir(self, path):
|
||||||
|
"""Convenience function for creating a clean directory."""
|
||||||
|
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."""
|
||||||
|
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,
|
||||||
|
svg_dir=self.m.vars.local_svg_dir,
|
||||||
|
tmp_dir=self.m.vars.tmp_dir)
|
||||||
|
|
||||||
|
def cleanup_steps(self):
|
||||||
|
"""Run any device-specific cleanup steps."""
|
||||||
|
pass
|
179
infra/bots/recipe_modules/flavor/gn_android_flavor.py
Normal file
179
infra/bots/recipe_modules/flavor/gn_android_flavor.py
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import default_flavor
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
"""GN Android flavor utils, used for building Skia for Android with GN."""
|
||||||
|
class GNAndroidFlavorUtils(default_flavor.DefaultFlavorUtils):
|
||||||
|
def __init__(self, m):
|
||||||
|
super(GNAndroidFlavorUtils, self).__init__(m)
|
||||||
|
self._ever_ran_adb = False
|
||||||
|
|
||||||
|
self.device_dirs = default_flavor.DeviceDirs(
|
||||||
|
dm_dir = self.m.vars.android_data_dir + 'dm_out',
|
||||||
|
perf_data_dir = self.m.vars.android_data_dir + 'perf',
|
||||||
|
resource_dir = self.m.vars.android_data_dir + 'resources',
|
||||||
|
images_dir = self.m.vars.android_data_dir + 'images',
|
||||||
|
skp_dir = self.m.vars.android_data_dir + 'skps',
|
||||||
|
svg_dir = self.m.vars.android_data_dir + 'svgs',
|
||||||
|
tmp_dir = self.m.vars.android_data_dir)
|
||||||
|
|
||||||
|
def _strip_environment(self):
|
||||||
|
self.m.vars.default_env = {k: v for (k,v)
|
||||||
|
in self.m.vars.default_env.iteritems()
|
||||||
|
if k in ['PATH']}
|
||||||
|
|
||||||
|
def _run(self, title, *cmd, **kwargs):
|
||||||
|
self._strip_environment()
|
||||||
|
return self.m.run(self.m.step, title, cmd=list(cmd),
|
||||||
|
cwd=self.m.vars.skia_dir, **kwargs)
|
||||||
|
|
||||||
|
def _py(self, title, script, infra_step=True):
|
||||||
|
self._strip_environment()
|
||||||
|
return self.m.run(self.m.python, title, script=script,
|
||||||
|
cwd=self.m.vars.skia_dir, env=None, infra_step=infra_step)
|
||||||
|
|
||||||
|
def _adb(self, title, *cmd, **kwargs):
|
||||||
|
self._ever_ran_adb = True
|
||||||
|
# The only non-infra adb steps (dm / nanobench) happen to not use _adb().
|
||||||
|
if 'infra_step' not in kwargs:
|
||||||
|
kwargs['infra_step'] = True
|
||||||
|
return self._run(title, 'adb', *cmd, **kwargs)
|
||||||
|
|
||||||
|
def compile(self, unused_target, **kwargs):
|
||||||
|
compiler = self.m.vars.builder_cfg.get('compiler')
|
||||||
|
configuration = self.m.vars.builder_cfg.get('configuration')
|
||||||
|
extra_config = self.m.vars.builder_cfg.get('extra_config', '')
|
||||||
|
os = self.m.vars.builder_cfg.get('os')
|
||||||
|
target_arch = self.m.vars.builder_cfg.get('target_arch')
|
||||||
|
|
||||||
|
assert compiler == 'Clang' # At this rate we might not ever support GCC.
|
||||||
|
|
||||||
|
extra_cflags = []
|
||||||
|
if configuration == 'Debug':
|
||||||
|
extra_cflags.append('-O1')
|
||||||
|
|
||||||
|
ndk_asset = 'android_ndk_linux'
|
||||||
|
if 'Mac' in os:
|
||||||
|
ndk_asset = 'android_ndk_darwin'
|
||||||
|
elif 'Win' in os:
|
||||||
|
ndk_asset = 'n'
|
||||||
|
|
||||||
|
quote = lambda x: '"%s"' % x
|
||||||
|
args = {
|
||||||
|
'ndk': quote(self.m.vars.slave_dir.join(ndk_asset)),
|
||||||
|
'target_cpu': quote(target_arch),
|
||||||
|
}
|
||||||
|
|
||||||
|
if configuration != 'Debug':
|
||||||
|
args['is_debug'] = 'false'
|
||||||
|
if 'Vulkan' in extra_config:
|
||||||
|
args['ndk_api'] = 24
|
||||||
|
args['skia_enable_vulkan_debug_layers'] = 'false'
|
||||||
|
if 'FrameworkDefs' in extra_config:
|
||||||
|
args['skia_enable_android_framework_defines'] = 'true'
|
||||||
|
if extra_cflags:
|
||||||
|
args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
|
||||||
|
|
||||||
|
gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
|
||||||
|
|
||||||
|
gn = 'gn.exe' if 'Win' in os else 'gn'
|
||||||
|
ninja = 'ninja.exe' if 'Win' in os else 'ninja'
|
||||||
|
gn = self.m.vars.skia_dir.join('bin', gn)
|
||||||
|
|
||||||
|
self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
|
||||||
|
self._run('gn gen', gn, 'gen', self.out_dir, '--args=' + gn_args)
|
||||||
|
self._run('ninja', ninja, '-C', self.out_dir)
|
||||||
|
|
||||||
|
def install(self):
|
||||||
|
self._adb('mkdir ' + self.device_dirs.resource_dir,
|
||||||
|
'shell', 'mkdir', '-p', self.device_dirs.resource_dir)
|
||||||
|
|
||||||
|
def cleanup_steps(self):
|
||||||
|
if self._ever_ran_adb:
|
||||||
|
self.m.python.inline('dump log', """
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
out = sys.argv[1]
|
||||||
|
log = subprocess.check_output(['adb', 'logcat', '-d'])
|
||||||
|
for line in log.split('\\n'):
|
||||||
|
tokens = line.split()
|
||||||
|
if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':
|
||||||
|
addr, path = tokens[-2:]
|
||||||
|
local = os.path.join(out, os.path.basename(path))
|
||||||
|
if os.path.exists(local):
|
||||||
|
sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])
|
||||||
|
line = line.replace(addr, addr + ' ' + sym.strip())
|
||||||
|
print line
|
||||||
|
""",
|
||||||
|
args=[self.m.vars.skia_out.join(self.m.vars.configuration)],
|
||||||
|
infra_step=True)
|
||||||
|
self._adb('kill adb server', 'kill-server')
|
||||||
|
|
||||||
|
def step(self, name, cmd, env=None, **kwargs):
|
||||||
|
app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0])
|
||||||
|
self._adb('push %s' % cmd[0],
|
||||||
|
'push', app, self.m.vars.android_bin_dir)
|
||||||
|
|
||||||
|
sh = '%s.sh' % cmd[0]
|
||||||
|
self.m.run.writefile(self.m.vars.tmp_dir.join(sh),
|
||||||
|
'set -x; %s%s; echo $? >%src' %
|
||||||
|
(self.m.vars.android_bin_dir, subprocess.list2cmdline(map(str, cmd)),
|
||||||
|
self.m.vars.android_bin_dir))
|
||||||
|
self._adb('push %s' % sh,
|
||||||
|
'push', self.m.vars.tmp_dir.join(sh), self.m.vars.android_bin_dir)
|
||||||
|
|
||||||
|
self._adb('clear log', 'logcat', '-c')
|
||||||
|
self.m.python.inline('%s' % cmd[0], """
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
bin_dir = sys.argv[1]
|
||||||
|
sh = sys.argv[2]
|
||||||
|
subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])
|
||||||
|
try:
|
||||||
|
sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',
|
||||||
|
bin_dir + 'rc'])))
|
||||||
|
except ValueError:
|
||||||
|
print "Couldn't read the return code. Probably killed for OOM."
|
||||||
|
sys.exit(1)
|
||||||
|
""", args=[self.m.vars.android_bin_dir, sh])
|
||||||
|
|
||||||
|
def copy_file_to_device(self, host, device):
|
||||||
|
self._adb('push %s %s' % (host, device), 'push', host, device)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_device(self, host, device):
|
||||||
|
# Copy the tree, avoiding hidden directories and resolving symlinks.
|
||||||
|
self.m.python.inline('push %s/* %s' % (host, device), """
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
host = sys.argv[1]
|
||||||
|
device = sys.argv[2]
|
||||||
|
for d, _, fs in os.walk(host):
|
||||||
|
p = os.path.relpath(d, host)
|
||||||
|
if p != '.' and p.startswith('.'):
|
||||||
|
continue
|
||||||
|
for f in fs:
|
||||||
|
print os.path.join(p,f)
|
||||||
|
subprocess.check_call(['adb', 'push',
|
||||||
|
os.path.realpath(os.path.join(host, p, f)),
|
||||||
|
os.path.join(device, p, f)])
|
||||||
|
""", args=[host, device], cwd=self.m.vars.skia_dir, infra_step=True)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_host(self, device, host):
|
||||||
|
self._adb('pull %s %s' % (device, host), 'pull', device, host)
|
||||||
|
|
||||||
|
def read_file_on_device(self, path):
|
||||||
|
return self._adb('read %s' % path,
|
||||||
|
'shell', 'cat', path, stdout=self.m.raw_io.output()).stdout
|
||||||
|
|
||||||
|
def remove_file_on_device(self, path):
|
||||||
|
self._adb('rm %s' % path, 'shell', 'rm', '-f', path)
|
||||||
|
|
||||||
|
def create_clean_device_dir(self, path):
|
||||||
|
self._adb('rm %s' % path, 'shell', 'rm', '-rf', path)
|
||||||
|
self._adb('mkdir %s' % path, 'shell', 'mkdir', '-p', path)
|
154
infra/bots/recipe_modules/flavor/gn_flavor.py
Normal file
154
infra/bots/recipe_modules/flavor/gn_flavor.py
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import default_flavor
|
||||||
|
|
||||||
|
"""GN flavor utils, used for building Skia with GN."""
|
||||||
|
class GNFlavorUtils(default_flavor.DefaultFlavorUtils):
|
||||||
|
def _strip_environment(self):
|
||||||
|
self.m.vars.default_env = {k: v for (k,v)
|
||||||
|
in self.m.vars.default_env.iteritems()
|
||||||
|
if k in ['PATH']}
|
||||||
|
|
||||||
|
def _run(self, title, cmd, env=None, infra_step=False):
|
||||||
|
self._strip_environment()
|
||||||
|
self.m.run(self.m.step, title, cmd=cmd,
|
||||||
|
env=env, cwd=self.m.vars.skia_dir, infra_step=infra_step)
|
||||||
|
|
||||||
|
def _py(self, title, script, env=None, infra_step=True):
|
||||||
|
self._strip_environment()
|
||||||
|
self.m.run(self.m.python, title, script=script,
|
||||||
|
env=env, cwd=self.m.vars.skia_dir, infra_step=infra_step)
|
||||||
|
|
||||||
|
def build_command_buffer(self):
|
||||||
|
self.m.run(self.m.python, 'build command_buffer',
|
||||||
|
script=self.m.vars.skia_dir.join('tools', 'build_command_buffer.py'),
|
||||||
|
args=[
|
||||||
|
'--chrome-dir', self.m.vars.checkout_root,
|
||||||
|
'--output-dir', self.m.vars.skia_out.join(self.m.vars.configuration),
|
||||||
|
'--no-sync', '--make-output-dir'])
|
||||||
|
|
||||||
|
def compile(self, unused_target, **kwargs):
|
||||||
|
"""Build Skia with GN."""
|
||||||
|
compiler = self.m.vars.builder_cfg.get('compiler', '')
|
||||||
|
configuration = self.m.vars.builder_cfg.get('configuration', '')
|
||||||
|
extra_config = self.m.vars.builder_cfg.get('extra_config', '')
|
||||||
|
os = self.m.vars.builder_cfg.get('os', '')
|
||||||
|
target_arch = self.m.vars.builder_cfg.get('target_arch', '')
|
||||||
|
|
||||||
|
clang_linux = str(self.m.vars.slave_dir.join('clang_linux'))
|
||||||
|
linux_vulkan_sdk = str(self.m.vars.slave_dir.join('linux_vulkan_sdk'))
|
||||||
|
win_toolchain = str(self.m.vars.slave_dir.join(
|
||||||
|
't', 'depot_tools', 'win_toolchain', 'vs_files',
|
||||||
|
'd3cb0e37bdd120ad0ac4650b674b09e81be45616'))
|
||||||
|
win_vulkan_sdk = str(self.m.vars.slave_dir.join('win_vulkan_sdk'))
|
||||||
|
|
||||||
|
cc, cxx = None, None
|
||||||
|
extra_cflags = []
|
||||||
|
extra_ldflags = []
|
||||||
|
|
||||||
|
if compiler == 'Clang' and os == 'Ubuntu':
|
||||||
|
cc = clang_linux + '/bin/clang'
|
||||||
|
cxx = clang_linux + '/bin/clang++'
|
||||||
|
extra_ldflags.append('-fuse-ld=lld')
|
||||||
|
elif compiler == 'Clang':
|
||||||
|
cc, cxx = 'clang', 'clang++'
|
||||||
|
elif compiler == 'GCC':
|
||||||
|
cc, cxx = 'gcc', 'g++'
|
||||||
|
|
||||||
|
if compiler != 'MSVC' and configuration == 'Debug':
|
||||||
|
extra_cflags.append('-O1')
|
||||||
|
|
||||||
|
if extra_config == 'Exceptions':
|
||||||
|
extra_cflags.append('/EHsc')
|
||||||
|
if extra_config == 'Fast':
|
||||||
|
extra_cflags.extend(['-march=native', '-fomit-frame-pointer', '-O3',
|
||||||
|
'-ffp-contract=off'])
|
||||||
|
if extra_config.startswith('SK'):
|
||||||
|
extra_cflags.append('-D' + extra_config)
|
||||||
|
if extra_config == 'MSAN':
|
||||||
|
extra_ldflags.append('-L' + clang_linux + '/msan')
|
||||||
|
|
||||||
|
args = {}
|
||||||
|
|
||||||
|
if configuration != 'Debug':
|
||||||
|
args['is_debug'] = 'false'
|
||||||
|
if extra_config == 'ANGLE':
|
||||||
|
args['skia_use_angle'] = 'true'
|
||||||
|
if extra_config == 'CommandBuffer':
|
||||||
|
self.m.run.run_once(self.build_command_buffer)
|
||||||
|
if extra_config == 'GDI':
|
||||||
|
args['skia_use_gdi'] = 'true'
|
||||||
|
if extra_config == 'MSAN':
|
||||||
|
args['skia_use_fontconfig'] = 'false'
|
||||||
|
if extra_config == 'Mesa':
|
||||||
|
args['skia_use_mesa'] = 'true'
|
||||||
|
if extra_config == 'NoGPU':
|
||||||
|
args['skia_enable_gpu'] = 'false'
|
||||||
|
if extra_config == 'Vulkan':
|
||||||
|
if os == 'Ubuntu':
|
||||||
|
args['skia_vulkan_sdk'] = '"%s"' % linux_vulkan_sdk
|
||||||
|
if 'Win' in os:
|
||||||
|
args['skia_vulkan_sdk'] = '"%s"' % win_vulkan_sdk
|
||||||
|
|
||||||
|
for (k,v) in {
|
||||||
|
'cc': cc,
|
||||||
|
'cxx': cxx,
|
||||||
|
'sanitize': extra_config if 'SAN' in extra_config else '',
|
||||||
|
'target_cpu': target_arch,
|
||||||
|
'target_os': 'ios' if 'iOS' in extra_config else '',
|
||||||
|
'windk': win_toolchain if 'Win' in os else '',
|
||||||
|
}.iteritems():
|
||||||
|
if v:
|
||||||
|
args[k] = '"%s"' % v
|
||||||
|
if extra_cflags:
|
||||||
|
args['extra_cflags'] = repr(extra_cflags).replace("'", '"')
|
||||||
|
if extra_ldflags:
|
||||||
|
args['extra_ldflags'] = repr(extra_ldflags).replace("'", '"')
|
||||||
|
|
||||||
|
gn_args = ' '.join('%s=%s' % (k,v) for (k,v) in sorted(args.iteritems()))
|
||||||
|
|
||||||
|
gn = 'gn.exe' if 'Win' in os else 'gn'
|
||||||
|
ninja = 'ninja.exe' if 'Win' in os else 'ninja'
|
||||||
|
gn = self.m.vars.skia_dir.join('bin', gn)
|
||||||
|
|
||||||
|
self._py('fetch-gn', self.m.vars.skia_dir.join('bin', 'fetch-gn'))
|
||||||
|
self._run('gn gen', [gn, 'gen', self.out_dir, '--args=' + gn_args])
|
||||||
|
self._run('ninja', [ninja, '-C', self.out_dir])
|
||||||
|
|
||||||
|
def copy_extra_build_products(self, swarming_out_dir):
|
||||||
|
configuration = self.m.vars.builder_cfg.get('configuration', '')
|
||||||
|
extra_config = self.m.vars.builder_cfg.get('extra_config', '')
|
||||||
|
os = self.m.vars.builder_cfg.get('os', '')
|
||||||
|
|
||||||
|
win_vulkan_sdk = str(self.m.vars.slave_dir.join('win_vulkan_sdk'))
|
||||||
|
if 'Win' in os and extra_config == 'Vulkan':
|
||||||
|
self.m.run.copy_build_products(
|
||||||
|
win_vulkan_sdk,
|
||||||
|
swarming_out_dir.join('out', configuration + '_x64'))
|
||||||
|
|
||||||
|
def step(self, name, cmd, env=None, **kwargs):
|
||||||
|
app = self.m.vars.skia_out.join(self.m.vars.configuration, cmd[0])
|
||||||
|
cmd = [app] + cmd[1:]
|
||||||
|
env = {}
|
||||||
|
|
||||||
|
clang_linux = str(self.m.vars.slave_dir.join('clang_linux'))
|
||||||
|
extra_config = self.m.vars.builder_cfg.get('extra_config', '')
|
||||||
|
|
||||||
|
if 'SAN' in extra_config:
|
||||||
|
# Sanitized binaries may want to run clang_linux/bin/llvm-symbolizer.
|
||||||
|
self.m.vars.default_env['PATH'] = '%%(PATH)s:%s' % clang_linux + '/bin'
|
||||||
|
elif 'Ubuntu' == self.m.vars.builder_cfg.get('os', ''):
|
||||||
|
cmd = ['catchsegv'] + cmd
|
||||||
|
|
||||||
|
if 'ASAN' == extra_config:
|
||||||
|
env[ 'ASAN_OPTIONS'] = 'symbolize=1 detect_leaks=1'
|
||||||
|
env[ 'LSAN_OPTIONS'] = 'symbolize=1 print_suppressions=1'
|
||||||
|
env['UBSAN_OPTIONS'] = 'symbolize=1 print_stacktrace=1'
|
||||||
|
|
||||||
|
if 'MSAN' == extra_config:
|
||||||
|
# Find the MSAN-built libc++.
|
||||||
|
env['LD_LIBRARY_PATH'] = clang_linux + '/msan'
|
||||||
|
|
||||||
|
self._run(name, cmd, env=env)
|
168
infra/bots/recipe_modules/flavor/ios_flavor.py
Normal file
168
infra/bots/recipe_modules/flavor/ios_flavor.py
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
# Copyright 2015 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
|
||||||
|
|
||||||
|
|
||||||
|
import copy
|
||||||
|
import default_flavor
|
||||||
|
|
||||||
|
|
||||||
|
"""iOS flavor utils, used for building for and running tests on iOS."""
|
||||||
|
|
||||||
|
|
||||||
|
class iOSFlavorUtils(default_flavor.DefaultFlavorUtils):
|
||||||
|
def __init__(self, m):
|
||||||
|
super(iOSFlavorUtils, self).__init__(m)
|
||||||
|
self.default_env = {}
|
||||||
|
self.default_env['XCODEBUILD'] = (
|
||||||
|
self.m.vars.slave_dir.join('xcodebuild'))
|
||||||
|
self.ios_bin = self.m.vars.skia_dir.join(
|
||||||
|
'platform_tools', 'ios', 'bin')
|
||||||
|
|
||||||
|
def step(self, name, cmd, **kwargs):
|
||||||
|
args = [self.ios_bin.join('ios_run_skia')]
|
||||||
|
env = {}
|
||||||
|
env.update(kwargs.pop('env', {}))
|
||||||
|
env.update(self.default_env)
|
||||||
|
# Convert 'dm' and 'nanobench' from positional arguments
|
||||||
|
# to flags, which is what iOSShell expects to select which
|
||||||
|
# one is being run.
|
||||||
|
cmd = ["--" + c if c in ['dm', 'nanobench'] else c
|
||||||
|
for c in cmd]
|
||||||
|
return self.m.run(self.m.step, name=name, cmd=args + cmd,
|
||||||
|
env=env, **kwargs)
|
||||||
|
|
||||||
|
def compile(self, target, **kwargs):
|
||||||
|
"""Build the given target."""
|
||||||
|
cmd = [self.ios_bin.join('ios_ninja')]
|
||||||
|
self.m.run(self.m.step, 'build iOSShell', cmd=cmd,
|
||||||
|
cwd=self.m.path['checkout'], **kwargs)
|
||||||
|
|
||||||
|
def device_path_join(self, *args):
|
||||||
|
"""Like os.path.join(), but for paths on a connected iOS device."""
|
||||||
|
return '/'.join(args)
|
||||||
|
|
||||||
|
def _remove_device_dir(self, path):
|
||||||
|
"""Remove the directory on the device."""
|
||||||
|
return self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'rmdir %s' % path,
|
||||||
|
cmd=[self.ios_bin.join('ios_rm'), path],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def _create_device_dir(self, path):
|
||||||
|
"""Create the directory on the device."""
|
||||||
|
return self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'mkdir %s' % path,
|
||||||
|
cmd=[self.ios_bin.join('ios_mkdir'), path],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_device(self, host_dir, device_dir):
|
||||||
|
"""Like shutil.copytree(), but for copying to a connected device."""
|
||||||
|
return self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='push %s to %s' % (self.m.path.basename(host_dir),
|
||||||
|
self.m.path.basename(device_dir)),
|
||||||
|
cmd=[self.ios_bin.join('ios_push_if_needed'),
|
||||||
|
host_dir, device_dir],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def copy_directory_contents_to_host(self, device_dir, host_dir):
|
||||||
|
"""Like shutil.copytree(), but for copying from a connected device."""
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='pull %s' % self.m.path.basename(device_dir),
|
||||||
|
cmd=[self.ios_bin.join('ios_pull_if_needed'),
|
||||||
|
device_dir, host_dir],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def copy_file_to_device(self, host_path, device_path):
|
||||||
|
"""Like shutil.copyfile, but for copying to a connected device."""
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='push %s' % host_path,
|
||||||
|
cmd=[self.ios_bin.join('ios_push_file'), host_path, device_path],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def copy_extra_build_products(self, swarming_out_dir):
|
||||||
|
xcode_dir = self.m.path.join(
|
||||||
|
'xcodebuild', '%s-iphoneos' % self.m.vars.configuration)
|
||||||
|
self.m.run.copy_build_products(
|
||||||
|
self.m.vars.skia_dir.join(xcode_dir),
|
||||||
|
swarming_out_dir.join(xcode_dir))
|
||||||
|
|
||||||
|
def create_clean_device_dir(self, path):
|
||||||
|
"""Like shutil.rmtree() + os.makedirs(), but on a connected device."""
|
||||||
|
self._remove_device_dir(path)
|
||||||
|
self._create_device_dir(path)
|
||||||
|
|
||||||
|
def install(self):
|
||||||
|
"""Run device-specific installation steps."""
|
||||||
|
prefix = self.device_path_join('skiabot', 'skia_')
|
||||||
|
self.device_dirs = default_flavor.DeviceDirs(
|
||||||
|
dm_dir=prefix + 'dm',
|
||||||
|
perf_data_dir=prefix + 'perf',
|
||||||
|
resource_dir=prefix + 'resources',
|
||||||
|
images_dir=prefix + 'images',
|
||||||
|
skp_dir=prefix + 'skp/skps',
|
||||||
|
svg_dir=prefix + 'svg/svgs',
|
||||||
|
tmp_dir=prefix + 'tmp_dir')
|
||||||
|
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='install iOSShell',
|
||||||
|
cmd=[self.ios_bin.join('ios_install')],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
def cleanup_steps(self):
|
||||||
|
"""Run any device-specific cleanup steps."""
|
||||||
|
if self.m.vars.role in (self.m.builder_name_schema.BUILDER_ROLE_TEST,
|
||||||
|
self.m.builder_name_schema.BUILDER_ROLE_PERF):
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='reboot',
|
||||||
|
cmd=[self.ios_bin.join('ios_restart')],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True)
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='wait for reboot',
|
||||||
|
cmd=['sleep', '20'],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
def read_file_on_device(self, path):
|
||||||
|
"""Read the given file."""
|
||||||
|
ret = self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
name='read %s' % self.m.path.basename(path),
|
||||||
|
cmd=[self.ios_bin.join('ios_cat_file'), path],
|
||||||
|
env=self.default_env,
|
||||||
|
stdout=self.m.raw_io.output(),
|
||||||
|
infra_step=True)
|
||||||
|
return ret.stdout.rstrip() if ret.stdout else ret.stdout
|
||||||
|
|
||||||
|
def remove_file_on_device(self, path):
|
||||||
|
"""Remove the file on the device."""
|
||||||
|
return self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'rm %s' % path,
|
||||||
|
cmd=[self.ios_bin.join('ios_rm'), path],
|
||||||
|
env=self.default_env,
|
||||||
|
infra_step=True,
|
||||||
|
)
|
64
infra/bots/recipe_modules/flavor/pdfium_flavor.py
Normal file
64
infra/bots/recipe_modules/flavor/pdfium_flavor.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
import default_flavor
|
||||||
|
|
||||||
|
|
||||||
|
"""PDFium flavor utils, used for building PDFium with Skia."""
|
||||||
|
|
||||||
|
|
||||||
|
class PDFiumFlavorUtils(default_flavor.DefaultFlavorUtils):
|
||||||
|
|
||||||
|
def compile(self, target, **kwargs):
|
||||||
|
"""Build PDFium with Skia."""
|
||||||
|
pdfium_dir = self.m.vars.checkout_root.join('pdfium')
|
||||||
|
|
||||||
|
# Runhook to generate the gn binary in buildtools.
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'runhook',
|
||||||
|
cmd=['gclient', 'runhook', 'gn_linux64'],
|
||||||
|
cwd=pdfium_dir,
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
|
# Install the sysroot.
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'sysroot',
|
||||||
|
cmd=['python', 'build/linux/sysroot_scripts/install-sysroot.py',
|
||||||
|
'--arch=amd64'],
|
||||||
|
cwd=pdfium_dir)
|
||||||
|
|
||||||
|
# Setup gn args.
|
||||||
|
gn_args = [
|
||||||
|
'pdf_is_standalone=true',
|
||||||
|
'clang_use_chrome_plugins=false',
|
||||||
|
'is_component_build=false',
|
||||||
|
'is_debug=false',
|
||||||
|
]
|
||||||
|
if 'SkiaPaths' in self.m.vars.builder_name:
|
||||||
|
gn_args.append('pdf_use_skia_paths=true')
|
||||||
|
else:
|
||||||
|
gn_args.append('pdf_use_skia=true')
|
||||||
|
|
||||||
|
|
||||||
|
env = kwargs.pop('env', {})
|
||||||
|
env['CHROMIUM_BUILDTOOLS_PATH'] = str(pdfium_dir.join('buildtools'))
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'gn_gen',
|
||||||
|
cmd=['gn', 'gen', 'out/skia', '--args=%s' % ' '.join(gn_args)],
|
||||||
|
cwd=pdfium_dir,
|
||||||
|
env=env)
|
||||||
|
|
||||||
|
# Build PDFium.
|
||||||
|
self.m.run(
|
||||||
|
self.m.step,
|
||||||
|
'build_pdfium',
|
||||||
|
cmd=['ninja', '-C', 'out/skia', '-j100'],
|
||||||
|
cwd=pdfium_dir,
|
||||||
|
env=env,
|
||||||
|
**kwargs)
|
27
infra/bots/recipe_modules/flavor/valgrind_flavor.py
Normal file
27
infra/bots/recipe_modules/flavor/valgrind_flavor.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
|
||||||
|
import gn_flavor
|
||||||
|
|
||||||
|
|
||||||
|
"""Utils for running under Valgrind."""
|
||||||
|
|
||||||
|
|
||||||
|
class ValgrindFlavorUtils(gn_flavor.GNFlavorUtils):
|
||||||
|
def __init__(self, m):
|
||||||
|
super(ValgrindFlavorUtils, self).__init__(m)
|
||||||
|
self._suppressions_file = self.m.vars.skia_dir.join(
|
||||||
|
'tools', 'valgrind.supp')
|
||||||
|
|
||||||
|
def step(self, name, cmd, **kwargs):
|
||||||
|
new_cmd = ['valgrind', '--gen-suppressions=all', '--leak-check=full',
|
||||||
|
'--track-origins=yes', '--error-exitcode=1', '--num-callers=40',
|
||||||
|
'--suppressions=%s' % self._suppressions_file]
|
||||||
|
path_to_app = self.out_dir.join(cmd[0])
|
||||||
|
new_cmd.append(path_to_app)
|
||||||
|
new_cmd.extend(cmd[1:])
|
||||||
|
return self.m.run(self.m.step, name, cmd=new_cmd,
|
||||||
|
**kwargs)
|
||||||
|
|
9
infra/bots/recipe_modules/infra/__init__.py
Normal file
9
infra/bots/recipe_modules/infra/__init__.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'recipe_engine/step',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
32
infra/bots/recipe_modules/infra/api.py
Normal file
32
infra/bots/recipe_modules/infra/api.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
|
||||||
|
INFRA_GO_PKG = 'go.skia.org/infra'
|
||||||
|
UPDATE_GO_ATTEMPTS = 5
|
||||||
|
|
||||||
|
|
||||||
|
class InfraApi(recipe_api.RecipeApi):
|
||||||
|
@property
|
||||||
|
def go_env(self):
|
||||||
|
return {'GOPATH': self.gopath}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def gopath(self):
|
||||||
|
return self.m.vars.checkout_root.join('gopath')
|
||||||
|
|
||||||
|
def update_go_deps(self):
|
||||||
|
"""Attempt to update go dependencies.
|
||||||
|
|
||||||
|
This fails flakily sometimes, so perform multiple attempts.
|
||||||
|
"""
|
||||||
|
self.m.run.with_retry(
|
||||||
|
self.m.step,
|
||||||
|
'update go pkgs',
|
||||||
|
UPDATE_GO_ATTEMPTS,
|
||||||
|
cmd=['go', 'get', '-u', '-t', '%s/...' % INFRA_GO_PKG],
|
||||||
|
env=self.go_env)
|
@ -0,0 +1,169 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs (attempt 2)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs (attempt 3)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs (attempt 4)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs (attempt 5)",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"reason": "Step('update go pkgs (attempt 5)') failed with return_code 1",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 1
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,124 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"step returned non-zero exit code: 1",
|
||||||
|
"@@@STEP_FAILURE@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs (attempt 2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/infra/bots/infra_tests.py"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "infra_tests"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,107 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_/_B_WORK]",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs checkout_path",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
|
||||||
|
"--spec",
|
||||||
|
"cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]",
|
||||||
|
"--patch_root",
|
||||||
|
"skia",
|
||||||
|
"--revision_mapping_file",
|
||||||
|
"{\"skia\": \"got_revision\"}",
|
||||||
|
"--git-cache-dir",
|
||||||
|
"[CUSTOM_/_B_CACHE]",
|
||||||
|
"--output_json",
|
||||||
|
"/path/to/tmp/json",
|
||||||
|
"--revision",
|
||||||
|
"skia@abc123",
|
||||||
|
"--output_manifest"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]",
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "bot_update",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_TEXT@Some step text@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@{@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ }, @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@json.output@}@@@",
|
||||||
|
"@@@STEP_LOG_END@json.output@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@",
|
||||||
|
"@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"go",
|
||||||
|
"get",
|
||||||
|
"-u",
|
||||||
|
"-t",
|
||||||
|
"go.skia.org/infra/..."
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "update go pkgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"[CUSTOM_/_B_WORK]/skia/infra/bots/infra_tests.py"
|
||||||
|
],
|
||||||
|
"cwd": "[CUSTOM_/_B_WORK]/skia",
|
||||||
|
"env": {
|
||||||
|
"GOPATH": "[CUSTOM_/_B_WORK]/gopath"
|
||||||
|
},
|
||||||
|
"name": "infra_tests"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
75
infra/bots/recipe_modules/infra/example.py
Normal file
75
infra/bots/recipe_modules/infra/example.py
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Recipe which runs the Skia infra tests.
|
||||||
|
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'core',
|
||||||
|
'infra',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def RunSteps(api):
|
||||||
|
api.vars.setup()
|
||||||
|
api.core.checkout_steps()
|
||||||
|
api.infra.update_go_deps()
|
||||||
|
|
||||||
|
# Run the infra tests.
|
||||||
|
infra_tests = api.vars.skia_dir.join(
|
||||||
|
'infra', 'bots', 'infra_tests.py')
|
||||||
|
api.step('infra_tests',
|
||||||
|
cmd=['python', infra_tests],
|
||||||
|
cwd=api.vars.skia_dir,
|
||||||
|
env=api.infra.go_env)
|
||||||
|
|
||||||
|
|
||||||
|
def GenTests(api):
|
||||||
|
yield (
|
||||||
|
api.test('infra_tests') +
|
||||||
|
api.properties(buildername='Housekeeper-PerCommit-InfraTests',
|
||||||
|
mastername='client.skia.fyi',
|
||||||
|
slavename='dummy-slave',
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]')
|
||||||
|
)
|
||||||
|
|
||||||
|
yield (
|
||||||
|
api.test('failed_one_update') +
|
||||||
|
api.properties(buildername='Housekeeper-PerCommit-InfraTests',
|
||||||
|
mastername='client.skia.fyi',
|
||||||
|
slavename='dummy-slave',
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.step_data('update go pkgs', retcode=1)
|
||||||
|
)
|
||||||
|
|
||||||
|
yield (
|
||||||
|
api.test('failed_all_updates') +
|
||||||
|
api.properties(buildername='Housekeeper-PerCommit-InfraTests',
|
||||||
|
mastername='client.skia.fyi',
|
||||||
|
slavename='dummy-slave',
|
||||||
|
buildnumber=5,
|
||||||
|
repository='https://skia.googlesource.com/skia.git',
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.step_data('update go pkgs', retcode=1) +
|
||||||
|
api.step_data('update go pkgs (attempt 2)', retcode=1) +
|
||||||
|
api.step_data('update go pkgs (attempt 3)', retcode=1) +
|
||||||
|
api.step_data('update go pkgs (attempt 4)', retcode=1) +
|
||||||
|
api.step_data('update go pkgs (attempt 5)', retcode=1)
|
||||||
|
)
|
17
infra/bots/recipe_modules/perf/__init__.py
Normal file
17
infra/bots/recipe_modules/perf/__init__.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2017 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'core',
|
||||||
|
'recipe_engine/json',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
'recipe_engine/time',
|
||||||
|
'run',
|
||||||
|
'flavor',
|
||||||
|
'vars',
|
||||||
|
]
|
221
infra/bots/recipe_modules/perf/api.py
Normal file
221
infra/bots/recipe_modules/perf/api.py
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Recipe module for Skia Swarming perf.
|
||||||
|
|
||||||
|
|
||||||
|
import calendar
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
|
||||||
|
def nanobench_flags(bot):
|
||||||
|
args = ['--pre_log']
|
||||||
|
|
||||||
|
if 'GPU' in bot:
|
||||||
|
args.append('--images')
|
||||||
|
args.extend(['--gpuStatsDump', 'true'])
|
||||||
|
|
||||||
|
if 'Android' in bot and 'GPU' in bot:
|
||||||
|
args.extend(['--useThermalManager', '1,1,10,1000'])
|
||||||
|
|
||||||
|
args.extend(['--scales', '1.0', '1.1'])
|
||||||
|
|
||||||
|
if 'iOS' in bot:
|
||||||
|
args.extend(['--skps', 'ignore_skps'])
|
||||||
|
|
||||||
|
config = ['8888', 'gpu', 'nonrendering', 'hwui' ]
|
||||||
|
if 'AndroidOne' not in bot:
|
||||||
|
config += [ 'f16', 'srgb' ]
|
||||||
|
if '-GCE-' in bot:
|
||||||
|
config += [ '565' ]
|
||||||
|
# The NP produces a long error stream when we run with MSAA.
|
||||||
|
if 'NexusPlayer' not in bot:
|
||||||
|
if 'Android' in bot:
|
||||||
|
# The NVIDIA_Shield has a regular OpenGL implementation. We bench that
|
||||||
|
# instead of ES.
|
||||||
|
if 'NVIDIA_Shield' in bot:
|
||||||
|
config.remove('gpu')
|
||||||
|
config.extend(['gl', 'glmsaa4', 'glnvpr4', 'glnvprdit4'])
|
||||||
|
else:
|
||||||
|
config.extend(['msaa4', 'nvpr4', 'nvprdit4'])
|
||||||
|
else:
|
||||||
|
config.extend(['msaa16', 'nvpr16', 'nvprdit16'])
|
||||||
|
|
||||||
|
# Bench instanced rendering on a limited number of platforms
|
||||||
|
if 'Nexus6' in bot:
|
||||||
|
config.append('esinst') # esinst4 isn't working yet on Adreno.
|
||||||
|
elif 'PixelC' in bot:
|
||||||
|
config.extend(['esinst', 'esinst4'])
|
||||||
|
elif 'NVIDIA_Shield' in bot:
|
||||||
|
config.extend(['glinst', 'glinst4'])
|
||||||
|
elif 'MacMini6.2' in bot:
|
||||||
|
config.extend(['glinst', 'glinst16'])
|
||||||
|
|
||||||
|
if 'CommandBuffer' in bot:
|
||||||
|
config = ['commandbuffer']
|
||||||
|
if 'Vulkan' in bot:
|
||||||
|
config = ['vk']
|
||||||
|
|
||||||
|
if 'ANGLE' in bot:
|
||||||
|
config.extend(['angle_d3d11_es2'])
|
||||||
|
# The GL backend of ANGLE crashes on the perf bot currently.
|
||||||
|
if 'Win' not in bot:
|
||||||
|
config.extend(['angle_gl_es2'])
|
||||||
|
|
||||||
|
args.append('--config')
|
||||||
|
args.extend(config)
|
||||||
|
|
||||||
|
if 'Valgrind' in bot:
|
||||||
|
# Don't care about Valgrind performance.
|
||||||
|
args.extend(['--loops', '1'])
|
||||||
|
args.extend(['--samples', '1'])
|
||||||
|
# Ensure that the bot framework does not think we have timed out.
|
||||||
|
args.extend(['--keepAlive', 'true'])
|
||||||
|
|
||||||
|
match = []
|
||||||
|
if 'Android' in bot:
|
||||||
|
# Segfaults when run as GPU bench. Very large texture?
|
||||||
|
match.append('~blurroundrect')
|
||||||
|
match.append('~patch_grid') # skia:2847
|
||||||
|
match.append('~desk_carsvg')
|
||||||
|
if 'NexusPlayer' in bot:
|
||||||
|
match.append('~desk_unicodetable')
|
||||||
|
if 'Nexus5' in bot:
|
||||||
|
match.append('~keymobi_shop_mobileweb_ebay_com.skp') # skia:5178
|
||||||
|
if 'iOS' in bot:
|
||||||
|
match.append('~blurroundrect')
|
||||||
|
match.append('~patch_grid') # skia:2847
|
||||||
|
match.append('~desk_carsvg')
|
||||||
|
match.append('~keymobi')
|
||||||
|
match.append('~path_hairline')
|
||||||
|
match.append('~GLInstancedArraysBench') # skia:4714
|
||||||
|
if 'IntelIris540' in bot and 'ANGLE' in bot:
|
||||||
|
match.append('~tile_image_filter_tiled_64') # skia:6082
|
||||||
|
if 'Vulkan' in bot and 'NexusPlayer' in bot:
|
||||||
|
match.append('~hardstop') # skia:6037
|
||||||
|
|
||||||
|
# We do not need or want to benchmark the decodes of incomplete images.
|
||||||
|
# In fact, in nanobench we assert that the full image decode succeeds.
|
||||||
|
match.append('~inc0.gif')
|
||||||
|
match.append('~inc1.gif')
|
||||||
|
match.append('~incInterlaced.gif')
|
||||||
|
match.append('~inc0.jpg')
|
||||||
|
match.append('~incGray.jpg')
|
||||||
|
match.append('~inc0.wbmp')
|
||||||
|
match.append('~inc1.wbmp')
|
||||||
|
match.append('~inc0.webp')
|
||||||
|
match.append('~inc1.webp')
|
||||||
|
match.append('~inc0.ico')
|
||||||
|
match.append('~inc1.ico')
|
||||||
|
match.append('~inc0.png')
|
||||||
|
match.append('~inc1.png')
|
||||||
|
match.append('~inc2.png')
|
||||||
|
match.append('~inc12.png')
|
||||||
|
match.append('~inc13.png')
|
||||||
|
match.append('~inc14.png')
|
||||||
|
match.append('~inc0.webp')
|
||||||
|
match.append('~inc1.webp')
|
||||||
|
|
||||||
|
if match:
|
||||||
|
args.append('--match')
|
||||||
|
args.extend(match)
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def perf_steps(api):
|
||||||
|
"""Run Skia benchmarks."""
|
||||||
|
if api.vars.upload_perf_results:
|
||||||
|
api.flavor.create_clean_device_dir(
|
||||||
|
api.flavor.device_dirs.perf_data_dir)
|
||||||
|
|
||||||
|
# Run nanobench.
|
||||||
|
properties = [
|
||||||
|
'--properties',
|
||||||
|
'gitHash', api.vars.got_revision,
|
||||||
|
'build_number', api.vars.build_number,
|
||||||
|
]
|
||||||
|
if api.vars.is_trybot:
|
||||||
|
properties.extend([
|
||||||
|
'issue', api.vars.issue,
|
||||||
|
'patchset', api.vars.patchset,
|
||||||
|
'patch_storage', api.vars.patch_storage,
|
||||||
|
])
|
||||||
|
if api.vars.no_buildbot:
|
||||||
|
properties.extend(['no_buildbot', 'True'])
|
||||||
|
properties.extend(['swarming_bot_id', api.vars.swarming_bot_id])
|
||||||
|
properties.extend(['swarming_task_id', api.vars.swarming_task_id])
|
||||||
|
|
||||||
|
target = 'nanobench'
|
||||||
|
args = [
|
||||||
|
target,
|
||||||
|
'--undefok', # This helps branches that may not know new flags.
|
||||||
|
'-i', api.flavor.device_dirs.resource_dir,
|
||||||
|
'--skps', api.flavor.device_dirs.skp_dir,
|
||||||
|
'--images', api.flavor.device_path_join(
|
||||||
|
api.flavor.device_dirs.images_dir, 'nanobench'),
|
||||||
|
]
|
||||||
|
|
||||||
|
# Do not run svgs on Valgrind.
|
||||||
|
if 'Valgrind' not in api.vars.builder_name:
|
||||||
|
if ('Vulkan' not in api.vars.builder_name or
|
||||||
|
'NexusPlayer' not in api.vars.builder_name):
|
||||||
|
args.extend(['--svgs', api.flavor.device_dirs.svg_dir])
|
||||||
|
|
||||||
|
skip_flag = None
|
||||||
|
if api.vars.builder_cfg.get('cpu_or_gpu') == 'CPU':
|
||||||
|
skip_flag = '--nogpu'
|
||||||
|
elif api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU':
|
||||||
|
skip_flag = '--nocpu'
|
||||||
|
if skip_flag:
|
||||||
|
args.append(skip_flag)
|
||||||
|
args.extend(nanobench_flags(api.vars.builder_name))
|
||||||
|
|
||||||
|
if api.vars.upload_perf_results:
|
||||||
|
now = api.time.utcnow()
|
||||||
|
ts = int(calendar.timegm(now.utctimetuple()))
|
||||||
|
json_path = api.flavor.device_path_join(
|
||||||
|
api.flavor.device_dirs.perf_data_dir,
|
||||||
|
'nanobench_%s_%d.json' % (api.vars.got_revision, ts))
|
||||||
|
args.extend(['--outResultsFile', json_path])
|
||||||
|
args.extend(properties)
|
||||||
|
|
||||||
|
keys_blacklist = ['configuration', 'role', 'is_trybot']
|
||||||
|
args.append('--key')
|
||||||
|
for k in sorted(api.vars.builder_cfg.keys()):
|
||||||
|
if not k in keys_blacklist:
|
||||||
|
args.extend([k, api.vars.builder_cfg[k]])
|
||||||
|
|
||||||
|
api.run(api.flavor.step, target, cmd=args,
|
||||||
|
abort_on_failure=False,
|
||||||
|
env=api.vars.default_env)
|
||||||
|
|
||||||
|
# See skia:2789.
|
||||||
|
if ('Valgrind' in api.vars.builder_name and
|
||||||
|
api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU'):
|
||||||
|
abandonGpuContext = list(args)
|
||||||
|
abandonGpuContext.extend(['--abandonGpuContext', '--nocpu'])
|
||||||
|
api.run(api.flavor.step,
|
||||||
|
'%s --abandonGpuContext' % target,
|
||||||
|
cmd=abandonGpuContext, abort_on_failure=False,
|
||||||
|
env=api.vars.default_env)
|
||||||
|
|
||||||
|
# Copy results to swarming out dir.
|
||||||
|
if api.vars.upload_perf_results:
|
||||||
|
api.file.makedirs('perf_dir', api.vars.perf_data_dir)
|
||||||
|
api.flavor.copy_directory_contents_to_host(
|
||||||
|
api.flavor.device_dirs.perf_data_dir,
|
||||||
|
api.vars.perf_data_dir)
|
||||||
|
|
||||||
|
class PerfApi(recipe_api.RecipeApi):
|
||||||
|
def run(self):
|
||||||
|
self.m.core.setup()
|
||||||
|
try:
|
||||||
|
self.m.flavor.install_everything()
|
||||||
|
perf_steps(self.m)
|
||||||
|
finally:
|
||||||
|
self.m.flavor.cleanup_steps()
|
||||||
|
self.m.run.check_failure()
|
@ -0,0 +1,455 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Debug/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config vk --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,455 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Debug/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~keymobi_shop_mobileweb_ebay_com.skp ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Debug"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,509 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 esinst --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Adreno420 extra_config GN_Android model Nexus6 os Android; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"pull",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android/data"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,509 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 build_number 5 --key arch arm compiler Clang cpu_or_gpu GPU cpu_or_gpu_value Tegra3 extra_config GN_Android model Nexus7 os Android; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"pull",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android/data"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,509 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb --match ~blurroundrect ~patch_grid ~desk_carsvg ~desk_unicodetable ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 build_number 5 --key arch x86 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value PowerVR extra_config GN_Android model NexusPlayer os Android; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"pull",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android/data"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,509 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config vk --match ~blurroundrect ~patch_grid ~desk_carsvg ~desk_unicodetable ~hardstop ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 build_number 5 --key arch x86 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value PowerVR extra_config GN_Android_Vulkan model NexusPlayer os Android; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android_Vulkan/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"pull",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android_Vulkan/data"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android_Vulkan/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,509 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/images"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/svgs"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/perf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"set -x; /data/local/tmp/nanobench --undefok -i /sdcard/revenge_of_the_skiabot/resources --skps /sdcard/revenge_of_the_skiabot/skps --images /sdcard/revenge_of_the_skiabot/images/nanobench --svgs /sdcard/revenge_of_the_skiabot/svgs --nocpu --pre_log --images --gpuStatsDump true --useThermalManager 1,1,10,1000 --scales 1.0 1.1 --config 8888 gpu nonrendering hwui f16 srgb msaa4 nvpr4 nvprdit4 esinst esinst4 --match ~blurroundrect ~patch_grid ~desk_carsvg ~inc0.gif ~inc1.gif ~incInterlaced.gif ~inc0.jpg ~incGray.jpg ~inc0.wbmp ~inc1.wbmp ~inc0.webp ~inc1.webp ~inc0.ico ~inc1.ico ~inc0.png ~inc1.png ~inc2.png ~inc12.png ~inc13.png ~inc14.png ~inc0.webp ~inc1.webp --outResultsFile /sdcard/revenge_of_the_skiabot/perf/nanobench_abc123_1337000001.json --properties gitHash abc123 build_number 5 --key arch arm64 compiler Clang cpu_or_gpu GPU cpu_or_gpu_value TegraX1 extra_config GN_Android model PixelC os Android; echo $? >/data/local/tmp/rc",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "write nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/nanobench.sh",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push nanobench.sh"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"logcat",
|
||||||
|
"-c"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "clear log"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
|
||||||
|
"/data/local/tmp/",
|
||||||
|
"nanobench.sh"
|
||||||
|
],
|
||||||
|
"name": "nanobench",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb', 'shell', 'sh', bin_dir + sh])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@try:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb', 'shell', 'cat',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"pull",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/perf",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android/data"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,208 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN/data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"--nogpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"glinst",
|
||||||
|
"glinst16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN/data/nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"Clang",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"CPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"AVX",
|
||||||
|
"extra_config",
|
||||||
|
"GN",
|
||||||
|
"model",
|
||||||
|
"MacMini6.2",
|
||||||
|
"os",
|
||||||
|
"Mac"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,113 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/out/Debug/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"commandbuffer",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,208 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN/data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"catchsegv",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"--nogpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"565",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN/data/nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"Clang",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"CPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"AVX2",
|
||||||
|
"extra_config",
|
||||||
|
"GN",
|
||||||
|
"model",
|
||||||
|
"GCE",
|
||||||
|
"os",
|
||||||
|
"Ubuntu"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,212 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE/data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]/skia/infra/bots/.recipe_deps/build/scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"catchsegv",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"angle_d3d11_es2",
|
||||||
|
"angle_gl_es2",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE/data/nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"GCC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"GTX550Ti",
|
||||||
|
"extra_config",
|
||||||
|
"ANGLE",
|
||||||
|
"model",
|
||||||
|
"ShuttleA",
|
||||||
|
"os",
|
||||||
|
"Ubuntu"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,207 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"valgrind",
|
||||||
|
"--gen-suppressions=all",
|
||||||
|
"--leak-check=full",
|
||||||
|
"--track-origins=yes",
|
||||||
|
"--error-exitcode=1",
|
||||||
|
"--num-callers=40",
|
||||||
|
"--suppressions=[START_DIR]/skia/tools/valgrind.supp",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--loops",
|
||||||
|
"1",
|
||||||
|
"--samples",
|
||||||
|
"1",
|
||||||
|
"--keepAlive",
|
||||||
|
"true",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"valgrind",
|
||||||
|
"--gen-suppressions=all",
|
||||||
|
"--leak-check=full",
|
||||||
|
"--track-origins=yes",
|
||||||
|
"--error-exitcode=1",
|
||||||
|
"--num-callers=40",
|
||||||
|
"--suppressions=[START_DIR]/skia/tools/valgrind.supp",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--loops",
|
||||||
|
"1",
|
||||||
|
"--samples",
|
||||||
|
"1",
|
||||||
|
"--keepAlive",
|
||||||
|
"true",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--abandonGpuContext",
|
||||||
|
"--nocpu"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "nanobench --abandonGpuContext"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,119 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Debug_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nogpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"565",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,205 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release\\data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Release_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nogpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"565",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release\\data\\nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"MSVC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"CPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"AVX2",
|
||||||
|
"model",
|
||||||
|
"GCE",
|
||||||
|
"os",
|
||||||
|
"Win"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,211 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE\\data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Release_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"angle_d3d11_es2",
|
||||||
|
"--match",
|
||||||
|
"~tile_image_filter_tiled_64",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE\\data\\nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"MSVC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"IntelIris540",
|
||||||
|
"extra_config",
|
||||||
|
"ANGLE",
|
||||||
|
"model",
|
||||||
|
"NUC",
|
||||||
|
"os",
|
||||||
|
"Win10"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,122 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Debug_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"angle_d3d11_es2",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,213 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Release_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data\\nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"issue",
|
||||||
|
"500",
|
||||||
|
"patchset",
|
||||||
|
"1",
|
||||||
|
"patch_storage",
|
||||||
|
"rietveld",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"MSVC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"HD4600",
|
||||||
|
"model",
|
||||||
|
"ShuttleB",
|
||||||
|
"os",
|
||||||
|
"Win8"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,429 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_install"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "install iOSShell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"skiabot/skia_resources"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push resources to skia_resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
|
||||||
|
"skiabot/skia_tmp_dir/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "read SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_tmp_dir/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rm skiabot/skia_tmp_dir/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_skp/skps"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rmdir skiabot/skia_skp/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
|
||||||
|
"skiabot/skia_skp/skps"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "mkdir skiabot/skia_skp/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"skiabot/skia_skp/skps"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push skp to skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"skiabot/skia_tmp_dir/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
|
||||||
|
"skiabot/skia_tmp_dir/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "read SK_IMAGE_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_tmp_dir/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rm skiabot/skia_tmp_dir/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_images"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rmdir skiabot/skia_images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
|
||||||
|
"skiabot/skia_images"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "mkdir skiabot/skia_images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
|
||||||
|
"[START_DIR]/skimage",
|
||||||
|
"skiabot/skia_images"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push skimage to skia_images"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION",
|
||||||
|
"skiabot/skia_tmp_dir/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push [START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
|
||||||
|
"skiabot/skia_tmp_dir/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "read SVG_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_tmp_dir/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rm skiabot/skia_tmp_dir/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
|
||||||
|
"skiabot/skia_svg/svgs"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "rmdir skiabot/skia_svg/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
|
||||||
|
"skiabot/skia_svg/svgs"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "mkdir skiabot/skia_svg/svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
|
||||||
|
"[START_DIR]/svg",
|
||||||
|
"skiabot/skia_svg/svgs"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push svg to svgs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION",
|
||||||
|
"skiabot/skia_tmp_dir/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "push [START_DIR]/tmp/SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_run_skia",
|
||||||
|
"--nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"skiabot/skia_resources",
|
||||||
|
"--skps",
|
||||||
|
"skiabot/skia_skp/skps",
|
||||||
|
"--images",
|
||||||
|
"skiabot/skia_images/nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"skiabot/skia_svg/svgs",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--skps",
|
||||||
|
"ignore_skps",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~blurroundrect",
|
||||||
|
"~patch_grid",
|
||||||
|
"~desk_carsvg",
|
||||||
|
"~keymobi",
|
||||||
|
"~path_hairline",
|
||||||
|
"~GLInstancedArraysBench",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]/skia/platform_tools/ios/bin/ios_restart"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "reboot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"sleep",
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Debug",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out",
|
||||||
|
"XCODEBUILD": "[START_DIR]/xcodebuild"
|
||||||
|
},
|
||||||
|
"name": "wait for reboot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,213 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Release_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data\\nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"issue",
|
||||||
|
"2147533002",
|
||||||
|
"patchset",
|
||||||
|
"1",
|
||||||
|
"patch_storage",
|
||||||
|
"rietveld",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"MSVC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"HD4600",
|
||||||
|
"model",
|
||||||
|
"ShuttleB",
|
||||||
|
"os",
|
||||||
|
"Win8"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
247
infra/bots/recipe_modules/perf/example.expected/nobuildbot.json
Normal file
247
infra/bots/recipe_modules/perf/example.expected/nobuildbot.json
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]\\tmp\\SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveDirectory(sys.argv[1])\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"PYTHONPATH": "[START_DIR]\\skia\\infra\\bots\\.recipe_deps\\build\\scripts"
|
||||||
|
},
|
||||||
|
"name": "rmtree data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[1])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs data",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming bot id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming task id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"[START_DIR]\\out\\Release_x64\\nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]\\skia\\resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]\\skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]\\skimage\\nanobench",
|
||||||
|
"--svgs",
|
||||||
|
"[START_DIR]\\svg",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--outResultsFile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data\\nanobench_abc123_1337000001.json",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"571",
|
||||||
|
"issue",
|
||||||
|
"456789",
|
||||||
|
"patchset",
|
||||||
|
"12",
|
||||||
|
"patch_storage",
|
||||||
|
"gerrit",
|
||||||
|
"no_buildbot",
|
||||||
|
"True",
|
||||||
|
"swarming_bot_id",
|
||||||
|
"skia-bot-123",
|
||||||
|
"swarming_task_id",
|
||||||
|
"123456",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"x86_64",
|
||||||
|
"compiler",
|
||||||
|
"MSVC",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"HD4600",
|
||||||
|
"model",
|
||||||
|
"ShuttleB",
|
||||||
|
"os",
|
||||||
|
"Win8"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]\\skia",
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]\\perfdata\\Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot\\data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,229 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]/tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded skimage VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SK_IMAGE_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SVG VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SVG_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SVG_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"valgrind",
|
||||||
|
"--gen-suppressions=all",
|
||||||
|
"--leak-check=full",
|
||||||
|
"--track-origins=yes",
|
||||||
|
"--error-exitcode=1",
|
||||||
|
"--num-callers=40",
|
||||||
|
"--suppressions=[START_DIR]/skia/tools/valgrind.supp",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--loops",
|
||||||
|
"1",
|
||||||
|
"--samples",
|
||||||
|
"1",
|
||||||
|
"--keepAlive",
|
||||||
|
"true",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "nanobench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"valgrind",
|
||||||
|
"--gen-suppressions=all",
|
||||||
|
"--leak-check=full",
|
||||||
|
"--track-origins=yes",
|
||||||
|
"--error-exitcode=1",
|
||||||
|
"--num-callers=40",
|
||||||
|
"--suppressions=[START_DIR]/skia/tools/valgrind.supp",
|
||||||
|
"[START_DIR]/out/Release/nanobench",
|
||||||
|
"--undefok",
|
||||||
|
"-i",
|
||||||
|
"[START_DIR]/skia/resources",
|
||||||
|
"--skps",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"--images",
|
||||||
|
"[START_DIR]/skimage/nanobench",
|
||||||
|
"--nocpu",
|
||||||
|
"--pre_log",
|
||||||
|
"--images",
|
||||||
|
"--gpuStatsDump",
|
||||||
|
"true",
|
||||||
|
"--scales",
|
||||||
|
"1.0",
|
||||||
|
"1.1",
|
||||||
|
"--config",
|
||||||
|
"8888",
|
||||||
|
"gpu",
|
||||||
|
"nonrendering",
|
||||||
|
"hwui",
|
||||||
|
"f16",
|
||||||
|
"srgb",
|
||||||
|
"msaa16",
|
||||||
|
"nvpr16",
|
||||||
|
"nvprdit16",
|
||||||
|
"--loops",
|
||||||
|
"1",
|
||||||
|
"--samples",
|
||||||
|
"1",
|
||||||
|
"--keepAlive",
|
||||||
|
"true",
|
||||||
|
"--match",
|
||||||
|
"~inc0.gif",
|
||||||
|
"~inc1.gif",
|
||||||
|
"~incInterlaced.gif",
|
||||||
|
"~inc0.jpg",
|
||||||
|
"~incGray.jpg",
|
||||||
|
"~inc0.wbmp",
|
||||||
|
"~inc1.wbmp",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"~inc0.ico",
|
||||||
|
"~inc1.ico",
|
||||||
|
"~inc0.png",
|
||||||
|
"~inc1.png",
|
||||||
|
"~inc2.png",
|
||||||
|
"~inc12.png",
|
||||||
|
"~inc13.png",
|
||||||
|
"~inc14.png",
|
||||||
|
"~inc0.webp",
|
||||||
|
"~inc1.webp",
|
||||||
|
"--abandonGpuContext",
|
||||||
|
"--nocpu"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"BUILDTYPE": "Release",
|
||||||
|
"CHROME_HEADLESS": "1",
|
||||||
|
"SKIA_OUT": "[START_DIR]/out"
|
||||||
|
},
|
||||||
|
"name": "nanobench --abandonGpuContext"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
159
infra/bots/recipe_modules/perf/example.py
Normal file
159
infra/bots/recipe_modules/perf/example.py
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Example recipe w/ coverage.
|
||||||
|
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'perf',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
TEST_BUILDERS = {
|
||||||
|
'client.skia': {
|
||||||
|
'skiabot-linux-swarm-000': [
|
||||||
|
('Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug' +
|
||||||
|
'-GN_Android_Vulkan'),
|
||||||
|
'Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android',
|
||||||
|
'Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android',
|
||||||
|
'Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android',
|
||||||
|
'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android',
|
||||||
|
('Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_'
|
||||||
|
'Android_Vulkan'),
|
||||||
|
'Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android',
|
||||||
|
'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN',
|
||||||
|
'Perf-Mac-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug-CommandBuffer',
|
||||||
|
'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN',
|
||||||
|
'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind',
|
||||||
|
'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-ANGLE',
|
||||||
|
'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug',
|
||||||
|
'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release',
|
||||||
|
'Perf-Win10-MSVC-NUC-GPU-IntelIris540-x86_64-Release-ANGLE',
|
||||||
|
'Perf-Win8-MSVC-ShuttleB-GPU-GTX960-x86_64-Debug-ANGLE',
|
||||||
|
'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot',
|
||||||
|
'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def RunSteps(api):
|
||||||
|
api.perf.run()
|
||||||
|
|
||||||
|
|
||||||
|
def GenTests(api):
|
||||||
|
for mastername, slaves in TEST_BUILDERS.iteritems():
|
||||||
|
for slavename, builders_by_slave in slaves.iteritems():
|
||||||
|
for builder in builders_by_slave:
|
||||||
|
test = (
|
||||||
|
api.test(builder) +
|
||||||
|
api.properties(buildername=builder,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('skia'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skimage', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skp', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if 'Trybot' in builder:
|
||||||
|
test += api.properties(issue=500,
|
||||||
|
patchset=1,
|
||||||
|
rietveld='https://codereview.chromium.org')
|
||||||
|
if 'Win' in builder:
|
||||||
|
test += api.platform('win', 64)
|
||||||
|
|
||||||
|
yield test
|
||||||
|
|
||||||
|
builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot'
|
||||||
|
yield (
|
||||||
|
api.test('big_issue_number') +
|
||||||
|
api.properties(buildername=builder,
|
||||||
|
mastername='client.skia.compile',
|
||||||
|
slavename='skiabot-linux-swarm-000',
|
||||||
|
buildnumber=5,
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
rietveld='https://codereview.chromium.org',
|
||||||
|
patchset=1,
|
||||||
|
issue=2147533002L) +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('skia'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skimage', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skp', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'svg', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
) +
|
||||||
|
api.platform('win', 64)
|
||||||
|
)
|
||||||
|
|
||||||
|
builder = ('Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind-'
|
||||||
|
'Trybot')
|
||||||
|
yield (
|
||||||
|
api.test('recipe_with_gerrit_patch') +
|
||||||
|
api.properties(
|
||||||
|
buildername=builder,
|
||||||
|
mastername='client.skia',
|
||||||
|
slavename='skiabot-linux-swarm-000',
|
||||||
|
buildnumber=5,
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
revision='abc123',
|
||||||
|
patch_storage='gerrit') +
|
||||||
|
api.properties.tryserver(
|
||||||
|
buildername=builder,
|
||||||
|
gerrit_project='skia',
|
||||||
|
gerrit_url='https://skia-review.googlesource.com/',
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot'
|
||||||
|
yield (
|
||||||
|
api.test('nobuildbot') +
|
||||||
|
api.properties(
|
||||||
|
buildername=builder,
|
||||||
|
mastername='client.skia',
|
||||||
|
slavename='skiabot-linux-swarm-000',
|
||||||
|
buildnumber=5,
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
nobuildbot='True',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]',
|
||||||
|
patch_storage='gerrit') +
|
||||||
|
api.properties.tryserver(
|
||||||
|
buildername=builder,
|
||||||
|
gerrit_project='skia',
|
||||||
|
gerrit_url='https://skia-review.googlesource.com/',
|
||||||
|
) +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('skia'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skimage', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skp', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'svg', 'VERSION'),
|
||||||
|
api.path['start_dir'].join('tmp', 'uninteresting_hashes.txt')
|
||||||
|
) +
|
||||||
|
api.platform('win', 64) +
|
||||||
|
api.step_data('get swarming bot id',
|
||||||
|
stdout=api.raw_io.output('skia-bot-123')) +
|
||||||
|
api.step_data('get swarming task id', stdout=api.raw_io.output('123456'))
|
||||||
|
)
|
13
infra/bots/recipe_modules/run/__init__.py
Normal file
13
infra/bots/recipe_modules/run/__init__.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'recipe_engine/json',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'vars',
|
||||||
|
]
|
130
infra/bots/recipe_modules/run/api.py
Normal file
130
infra/bots/recipe_modules/run/api.py
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
BUILD_PRODUCTS_ISOLATE_WHITELIST = [
|
||||||
|
'dm',
|
||||||
|
'dm.exe',
|
||||||
|
'get_images_from_skps',
|
||||||
|
'get_images_from_skps.exe',
|
||||||
|
'nanobench',
|
||||||
|
'nanobench.exe',
|
||||||
|
'skpbench',
|
||||||
|
'*.so',
|
||||||
|
'*.dll',
|
||||||
|
'*.dylib',
|
||||||
|
'skia_launcher',
|
||||||
|
'lib/*.so',
|
||||||
|
'iOSShell.app',
|
||||||
|
'iOSShell.ipa',
|
||||||
|
'visualbench',
|
||||||
|
'visualbench.exe',
|
||||||
|
'vulkan-1.dll',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class SkiaStepApi(recipe_api.RecipeApi):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
"""Initialize the recipe module."""
|
||||||
|
super(SkiaStepApi, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
self._already_ran = {}
|
||||||
|
self._ccache = None
|
||||||
|
self._checked_for_ccache = False
|
||||||
|
self._failed = []
|
||||||
|
|
||||||
|
def check_failure(self):
|
||||||
|
"""Raise an exception if any step failed."""
|
||||||
|
if self._failed:
|
||||||
|
raise self.m.step.StepFailure('Failed build steps: %s' %
|
||||||
|
', '.join([f.name for f in self._failed]))
|
||||||
|
|
||||||
|
def run_once(self, fn, *args, **kwargs):
|
||||||
|
if not fn.__name__ in self._already_ran:
|
||||||
|
self._already_ran[fn.__name__] = fn(*args, **kwargs)
|
||||||
|
return self._already_ran[fn.__name__]
|
||||||
|
|
||||||
|
def readfile(self, filename, *args, **kwargs):
|
||||||
|
"""Convenience function for reading files."""
|
||||||
|
name = kwargs.pop('name') or 'read %s' % self.m.path.basename(filename)
|
||||||
|
return self.m.file.read(name, filename, infra_step=True, *args, **kwargs)
|
||||||
|
|
||||||
|
def writefile(self, filename, contents):
|
||||||
|
"""Convenience function for writing files."""
|
||||||
|
return self.m.file.write('write %s' % self.m.path.basename(filename),
|
||||||
|
filename, contents, infra_step=True)
|
||||||
|
|
||||||
|
def rmtree(self, path):
|
||||||
|
"""Wrapper around api.file.rmtree with environment fix."""
|
||||||
|
env = {}
|
||||||
|
env['PYTHONPATH'] = str(self.m.path['start_dir'].join(
|
||||||
|
'skia', 'infra', 'bots', '.recipe_deps', 'build', 'scripts'))
|
||||||
|
self.m.file.rmtree(self.m.path.basename(path),
|
||||||
|
path,
|
||||||
|
env=env,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
def __call__(self, steptype, name, abort_on_failure=True,
|
||||||
|
fail_build_on_failure=True, env=None, **kwargs):
|
||||||
|
"""Run a step. If it fails, keep going but mark the build status failed."""
|
||||||
|
env = dict(env or {})
|
||||||
|
env.update(self.m.vars.default_env)
|
||||||
|
try:
|
||||||
|
return steptype(name=name, env=env, **kwargs)
|
||||||
|
except self.m.step.StepFailure as e:
|
||||||
|
if abort_on_failure:
|
||||||
|
raise # pragma: no cover
|
||||||
|
if fail_build_on_failure:
|
||||||
|
self._failed.append(e)
|
||||||
|
|
||||||
|
def copy_build_products(self, src, dst):
|
||||||
|
"""Copy whitelisted build products from src to dst."""
|
||||||
|
self.m.python.inline(
|
||||||
|
name='copy build products',
|
||||||
|
program='''import errno
|
||||||
|
import glob
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
|
||||||
|
src = sys.argv[1]
|
||||||
|
dst = sys.argv[2]
|
||||||
|
build_products_whitelist = %s
|
||||||
|
|
||||||
|
try:
|
||||||
|
os.makedirs(dst)
|
||||||
|
except OSError as e:
|
||||||
|
if e.errno != errno.EEXIST:
|
||||||
|
raise
|
||||||
|
|
||||||
|
for pattern in build_products_whitelist:
|
||||||
|
path = os.path.join(src, pattern)
|
||||||
|
for f in glob.glob(path):
|
||||||
|
dst_path = os.path.join(dst, os.path.relpath(f, src))
|
||||||
|
if not os.path.isdir(os.path.dirname(dst_path)):
|
||||||
|
os.makedirs(os.path.dirname(dst_path))
|
||||||
|
print 'Copying build product %%s to %%s' %% (f, dst_path)
|
||||||
|
shutil.move(f, dst_path)
|
||||||
|
''' % str(BUILD_PRODUCTS_ISOLATE_WHITELIST),
|
||||||
|
args=[src, dst],
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
def with_retry(self, steptype, name, attempts, *args, **kwargs):
|
||||||
|
for attempt in xrange(attempts):
|
||||||
|
step_name = name
|
||||||
|
if attempt > 0:
|
||||||
|
step_name += ' (attempt %d)' % (attempt + 1)
|
||||||
|
try:
|
||||||
|
steptype(step_name, *args, **kwargs)
|
||||||
|
return
|
||||||
|
except self.m.step.StepFailure:
|
||||||
|
if attempt == attempts - 1:
|
||||||
|
raise
|
17
infra/bots/recipe_modules/skpbench/__init__.py
Normal file
17
infra/bots/recipe_modules/skpbench/__init__.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2017 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'core',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
'recipe_engine/step',
|
||||||
|
'recipe_engine/time',
|
||||||
|
'run',
|
||||||
|
'flavor',
|
||||||
|
'vars',
|
||||||
|
]
|
89
infra/bots/recipe_modules/skpbench/api.py
Normal file
89
infra/bots/recipe_modules/skpbench/api.py
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Recipe module for Skia Swarming skpbench.
|
||||||
|
|
||||||
|
|
||||||
|
import calendar
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
|
||||||
|
def _run(api, title, *cmd, **kwargs):
|
||||||
|
return api.run(api.step, title, cmd=list(cmd),
|
||||||
|
cwd=api.vars.skia_dir, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def _adb(api, title, *cmd, **kwargs):
|
||||||
|
if 'infra_step' not in kwargs:
|
||||||
|
kwargs['infra_step'] = True
|
||||||
|
return _run(api, title, 'adb', *cmd, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def skpbench_steps(api):
|
||||||
|
"""benchmark Skia using skpbench."""
|
||||||
|
app = api.vars.skia_out.join(api.vars.configuration, 'skpbench')
|
||||||
|
_adb(api, 'push skpbench', 'push', app, api.vars.android_bin_dir)
|
||||||
|
|
||||||
|
skpbench_dir = api.vars.slave_dir.join('skia', 'tools', 'skpbench')
|
||||||
|
table = api.path.join(api.vars.swarming_out_dir, 'table')
|
||||||
|
|
||||||
|
config = 'gpu,esinst4'
|
||||||
|
if 'Vulkan' in api.vars.builder_name:
|
||||||
|
config = 'vk'
|
||||||
|
|
||||||
|
skpbench_args = [
|
||||||
|
api.path.join(api.vars.android_bin_dir, 'skpbench'),
|
||||||
|
api.path.join(api.vars.android_data_dir, 'skps'),
|
||||||
|
'--adb',
|
||||||
|
'--resultsfile', table,
|
||||||
|
'--config', config]
|
||||||
|
|
||||||
|
api.run(api.python, 'skpbench',
|
||||||
|
script=skpbench_dir.join('skpbench.py'),
|
||||||
|
args=skpbench_args)
|
||||||
|
|
||||||
|
skiaperf_args = [
|
||||||
|
table,
|
||||||
|
'--properties',
|
||||||
|
'gitHash', api.vars.got_revision,
|
||||||
|
'build_number', api.vars.build_number,
|
||||||
|
]
|
||||||
|
|
||||||
|
skiaperf_args.extend(['no_buildbot', 'True'])
|
||||||
|
skiaperf_args.extend(['swarming_bot_id', api.vars.swarming_bot_id])
|
||||||
|
skiaperf_args.extend(['swarming_task_id', api.vars.swarming_task_id])
|
||||||
|
|
||||||
|
now = api.time.utcnow()
|
||||||
|
ts = int(calendar.timegm(now.utctimetuple()))
|
||||||
|
api.file.makedirs('perf_dir', api.vars.perf_data_dir)
|
||||||
|
json_path = api.path.join(
|
||||||
|
api.vars.perf_data_dir,
|
||||||
|
'skpbench_%s_%d.json' % (api.vars.got_revision, ts))
|
||||||
|
|
||||||
|
skiaperf_args.extend([
|
||||||
|
'--outfile', json_path
|
||||||
|
])
|
||||||
|
|
||||||
|
keys_blacklist = ['configuration', 'role', 'is_trybot']
|
||||||
|
skiaperf_args.append('--key')
|
||||||
|
for k in sorted(api.vars.builder_cfg.keys()):
|
||||||
|
if not k in keys_blacklist:
|
||||||
|
skiaperf_args.extend([k, api.vars.builder_cfg[k]])
|
||||||
|
|
||||||
|
api.run(api.python, 'Parse skpbench output into Perf json',
|
||||||
|
script=skpbench_dir.join('skiaperf.py'),
|
||||||
|
args=skiaperf_args)
|
||||||
|
|
||||||
|
|
||||||
|
class SkpBenchApi(recipe_api.RecipeApi):
|
||||||
|
def run(self):
|
||||||
|
self.m.core.setup()
|
||||||
|
try:
|
||||||
|
self.m.flavor.install(skps=True)
|
||||||
|
skpbench_steps(self.m)
|
||||||
|
finally:
|
||||||
|
self.m.flavor.cleanup_steps()
|
||||||
|
self.m.run.check_failure()
|
@ -0,0 +1,290 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]/tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/skpbench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push skpbench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[START_DIR]/skia/tools/skpbench/skpbench.py",
|
||||||
|
"/data/local/tmp/skpbench",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"--adb",
|
||||||
|
"--resultsfile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/table",
|
||||||
|
"--config",
|
||||||
|
"gpu,esinst4"
|
||||||
|
],
|
||||||
|
"name": "skpbench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming bot id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming task id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android_Skpbench/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[START_DIR]/skia/tools/skpbench/skiaperf.py",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/table",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"no_buildbot",
|
||||||
|
"True",
|
||||||
|
"swarming_bot_id",
|
||||||
|
"skia-bot-123",
|
||||||
|
"swarming_task_id",
|
||||||
|
"123456",
|
||||||
|
"--outfile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android_Skpbench/data/skpbench_abc123_1337000001.json",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"arm64",
|
||||||
|
"compiler",
|
||||||
|
"Clang",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"TegraX1",
|
||||||
|
"extra_config",
|
||||||
|
"GN_Android_Skpbench",
|
||||||
|
"model",
|
||||||
|
"PixelC",
|
||||||
|
"os",
|
||||||
|
"Android"
|
||||||
|
],
|
||||||
|
"name": "Parse skpbench output into Perf json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,290 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[START_DIR]/tmp",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs tmp_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
||||||
|
"/path/to/tmp/"
|
||||||
|
],
|
||||||
|
"name": "Get downloaded SKP VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
|
||||||
|
"42",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"name": "write SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"cat",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
|
||||||
|
"stdout": "/path/to/tmp/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-f",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "rm /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"shell",
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
|
||||||
|
"[START_DIR]/skp",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ continue@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb', 'push',@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/tmp/SKP_VERSION",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"push",
|
||||||
|
"[START_DIR]/out/Release/skpbench",
|
||||||
|
"/data/local/tmp/"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "push skpbench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[START_DIR]/skia/tools/skpbench/skpbench.py",
|
||||||
|
"/data/local/tmp/skpbench",
|
||||||
|
"/sdcard/revenge_of_the_skiabot/skps",
|
||||||
|
"--adb",
|
||||||
|
"--resultsfile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/table",
|
||||||
|
"--config",
|
||||||
|
"vk"
|
||||||
|
],
|
||||||
|
"name": "skpbench"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming bot id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
||||||
|
],
|
||||||
|
"name": "get swarming task id",
|
||||||
|
"stdout": "/path/to/tmp/",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android_Vulkan_Skpbench/data",
|
||||||
|
"511"
|
||||||
|
],
|
||||||
|
"name": "makedirs perf_dir",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"[START_DIR]/skia/tools/skpbench/skiaperf.py",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/table",
|
||||||
|
"--properties",
|
||||||
|
"gitHash",
|
||||||
|
"abc123",
|
||||||
|
"build_number",
|
||||||
|
"5",
|
||||||
|
"no_buildbot",
|
||||||
|
"True",
|
||||||
|
"swarming_bot_id",
|
||||||
|
"skia-bot-123",
|
||||||
|
"swarming_task_id",
|
||||||
|
"123456",
|
||||||
|
"--outfile",
|
||||||
|
"[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android_Vulkan_Skpbench/data/skpbench_abc123_1337000001.json",
|
||||||
|
"--key",
|
||||||
|
"arch",
|
||||||
|
"arm64",
|
||||||
|
"compiler",
|
||||||
|
"Clang",
|
||||||
|
"cpu_or_gpu",
|
||||||
|
"GPU",
|
||||||
|
"cpu_or_gpu_value",
|
||||||
|
"TegraX1",
|
||||||
|
"extra_config",
|
||||||
|
"GN_Android_Vulkan_Skpbench",
|
||||||
|
"model",
|
||||||
|
"PixelC",
|
||||||
|
"os",
|
||||||
|
"Android"
|
||||||
|
],
|
||||||
|
"name": "Parse skpbench output into Perf json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"python",
|
||||||
|
"-u",
|
||||||
|
"\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
|
||||||
|
"[START_DIR]/out/Release"
|
||||||
|
],
|
||||||
|
"name": "dump log",
|
||||||
|
"~followup_annotations": [
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb', 'logcat', '-d'])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
|
||||||
|
"@@@STEP_LOG_LINE@python.inline@ print line@@@",
|
||||||
|
"@@@STEP_LOG_END@python.inline@@@"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmd": [
|
||||||
|
"adb",
|
||||||
|
"kill-server"
|
||||||
|
],
|
||||||
|
"cwd": "[START_DIR]/skia",
|
||||||
|
"name": "kill adb server"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "$result",
|
||||||
|
"recipe_result": null,
|
||||||
|
"status_code": 0
|
||||||
|
}
|
||||||
|
]
|
56
infra/bots/recipe_modules/skpbench/example.py
Normal file
56
infra/bots/recipe_modules/skpbench/example.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Example recipe w/ coverage.
|
||||||
|
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
'skpbench',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
TEST_BUILDERS = {
|
||||||
|
'client.skia': {
|
||||||
|
'skiabot-linux-swarm-000': [
|
||||||
|
'Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-GN_Android_Skpbench',
|
||||||
|
('Perf-Android-Clang-PixelC-GPU-TegraX1-arm64-Release-' +
|
||||||
|
'GN_Android_Vulkan_Skpbench'),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def RunSteps(api):
|
||||||
|
api.skpbench.run()
|
||||||
|
|
||||||
|
|
||||||
|
def GenTests(api):
|
||||||
|
for mastername, slaves in TEST_BUILDERS.iteritems():
|
||||||
|
for slavename, builders_by_slave in slaves.iteritems():
|
||||||
|
for builder in builders_by_slave:
|
||||||
|
test = (
|
||||||
|
api.test(builder) +
|
||||||
|
api.properties(buildername=builder,
|
||||||
|
mastername=mastername,
|
||||||
|
slavename=slavename,
|
||||||
|
buildnumber=5,
|
||||||
|
revision='abc123',
|
||||||
|
path_config='kitchen',
|
||||||
|
swarm_out_dir='[SWARM_OUT_DIR]') +
|
||||||
|
api.path.exists(
|
||||||
|
api.path['start_dir'].join('skia'),
|
||||||
|
api.path['start_dir'].join('skia', 'infra', 'bots', 'assets',
|
||||||
|
'skp', 'VERSION'),
|
||||||
|
) +
|
||||||
|
api.step_data('get swarming bot id',
|
||||||
|
stdout=api.raw_io.output('skia-bot-123')) +
|
||||||
|
api.step_data('get swarming task id',
|
||||||
|
stdout=api.raw_io.output('123456'))
|
||||||
|
)
|
||||||
|
|
||||||
|
yield test
|
17
infra/bots/recipe_modules/sktest/__init__.py
Normal file
17
infra/bots/recipe_modules/sktest/__init__.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright 2017 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.
|
||||||
|
|
||||||
|
DEPS = [
|
||||||
|
'build/file',
|
||||||
|
'core',
|
||||||
|
'recipe_engine/json',
|
||||||
|
'recipe_engine/path',
|
||||||
|
'recipe_engine/platform',
|
||||||
|
'recipe_engine/properties',
|
||||||
|
'recipe_engine/python',
|
||||||
|
'recipe_engine/raw_io',
|
||||||
|
'flavor',
|
||||||
|
'run',
|
||||||
|
'vars',
|
||||||
|
]
|
541
infra/bots/recipe_modules/sktest/api.py
Normal file
541
infra/bots/recipe_modules/sktest/api.py
Normal file
@ -0,0 +1,541 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Recipe module for Skia Swarming test.
|
||||||
|
|
||||||
|
|
||||||
|
from recipe_engine import recipe_api
|
||||||
|
|
||||||
|
|
||||||
|
def dm_flags(bot):
|
||||||
|
args = []
|
||||||
|
|
||||||
|
# 32-bit desktop bots tend to run out of memory, because they have relatively
|
||||||
|
# far more cores than RAM (e.g. 32 cores, 3G RAM). Hold them back a bit.
|
||||||
|
if '-x86-' in bot and not 'NexusPlayer' in bot:
|
||||||
|
args.extend('--threads 4'.split(' '))
|
||||||
|
|
||||||
|
# These are the canonical configs that we would ideally run on all bots. We
|
||||||
|
# may opt out or substitute some below for specific bots
|
||||||
|
configs = ['8888', 'srgb', 'gpu', 'gpudft', 'gpusrgb', 'pdf']
|
||||||
|
# Add in either msaa4 or msaa16 to the canonical set of configs to run
|
||||||
|
if 'Android' in bot or 'iOS' in bot:
|
||||||
|
configs.append('msaa4')
|
||||||
|
else:
|
||||||
|
configs.append('msaa16')
|
||||||
|
|
||||||
|
# The NP produces a long error stream when we run with MSAA. The Tegra3 just
|
||||||
|
# doesn't support it.
|
||||||
|
if ('NexusPlayer' in bot or
|
||||||
|
'Tegra3' in bot or
|
||||||
|
# We aren't interested in fixing msaa bugs on iPad4.
|
||||||
|
'iPad4' in bot or
|
||||||
|
# skia:5792
|
||||||
|
'iHD530' in bot or
|
||||||
|
'IntelIris540' in bot):
|
||||||
|
configs = [x for x in configs if 'msaa' not in x]
|
||||||
|
|
||||||
|
# The NP produces different images for dft on every run.
|
||||||
|
if 'NexusPlayer' in bot:
|
||||||
|
configs = [x for x in configs if 'gpudft' not in x]
|
||||||
|
|
||||||
|
# Runs out of memory on Android bots. Everyone else seems fine.
|
||||||
|
if 'Android' in bot:
|
||||||
|
configs.remove('pdf')
|
||||||
|
|
||||||
|
if '-GCE-' in bot:
|
||||||
|
configs.extend(['565'])
|
||||||
|
configs.extend(['f16'])
|
||||||
|
configs.extend(['sp-8888', '2ndpic-8888']) # Test niche uses of SkPicture.
|
||||||
|
configs.extend(['lite-8888']) # Experimental display list.
|
||||||
|
|
||||||
|
if '-TSAN' not in bot:
|
||||||
|
if ('TegraK1' in bot or
|
||||||
|
'TegraX1' in bot or
|
||||||
|
'GTX550Ti' in bot or
|
||||||
|
'GTX660' in bot or
|
||||||
|
'GT610' in bot):
|
||||||
|
if 'Android' in bot:
|
||||||
|
configs.append('nvprdit4')
|
||||||
|
else:
|
||||||
|
configs.append('nvprdit16')
|
||||||
|
|
||||||
|
# We want to test the OpenGL config not the GLES config on the Shield
|
||||||
|
if 'NVIDIA_Shield' in bot:
|
||||||
|
configs = [x.replace('gpu', 'gl') for x in configs]
|
||||||
|
configs = [x.replace('msaa', 'glmsaa') for x in configs]
|
||||||
|
configs = [x.replace('nvpr', 'glnvpr') for x in configs]
|
||||||
|
|
||||||
|
# NP is running out of RAM when we run all these modes. skia:3255
|
||||||
|
if 'NexusPlayer' not in bot:
|
||||||
|
configs.extend(mode + '-8888' for mode in
|
||||||
|
['serialize', 'tiles_rt', 'pic'])
|
||||||
|
|
||||||
|
# Test instanced rendering on a limited number of platforms
|
||||||
|
if 'Nexus6' in bot:
|
||||||
|
configs.append('esinst') # esinst4 isn't working yet on Adreno.
|
||||||
|
elif 'NVIDIA_Shield' in bot:
|
||||||
|
# Multisampled instanced configs use nvpr.
|
||||||
|
configs = [x.replace('glnvpr', 'glinst') for x in configs]
|
||||||
|
configs.append('glinst')
|
||||||
|
elif 'PixelC' in bot:
|
||||||
|
# Multisampled instanced configs use nvpr.
|
||||||
|
configs = [x.replace('nvpr', 'esinst') for x in configs]
|
||||||
|
configs.append('esinst')
|
||||||
|
elif 'MacMini6.2' in bot:
|
||||||
|
configs.extend(['glinst', 'glinst16'])
|
||||||
|
|
||||||
|
# CommandBuffer bot *only* runs the command_buffer config.
|
||||||
|
if 'CommandBuffer' in bot:
|
||||||
|
configs = ['commandbuffer']
|
||||||
|
|
||||||
|
# ANGLE bot *only* runs the angle configs
|
||||||
|
if 'ANGLE' in bot:
|
||||||
|
configs = ['angle_d3d11_es2',
|
||||||
|
'angle_d3d9_es2',
|
||||||
|
'angle_d3d11_es2_msaa4',
|
||||||
|
'angle_gl_es2']
|
||||||
|
|
||||||
|
# Vulkan bot *only* runs the vk config.
|
||||||
|
if 'Vulkan' in bot:
|
||||||
|
configs = ['vk']
|
||||||
|
|
||||||
|
args.append('--config')
|
||||||
|
args.extend(configs)
|
||||||
|
|
||||||
|
# Run tests, gms, and image decoding tests everywhere.
|
||||||
|
args.extend('--src tests gm image colorImage'.split(' '))
|
||||||
|
if 'Vulkan' not in bot or 'NexusPlayer' not in bot:
|
||||||
|
args.append('svg')
|
||||||
|
|
||||||
|
if 'GalaxyS' in bot:
|
||||||
|
args.extend(('--threads', '0'))
|
||||||
|
|
||||||
|
blacklisted = []
|
||||||
|
def blacklist(quad):
|
||||||
|
config, src, options, name = quad.split(' ') if type(quad) is str else quad
|
||||||
|
if config == '_' or config in configs:
|
||||||
|
blacklisted.extend([config, src, options, name])
|
||||||
|
|
||||||
|
# TODO: ???
|
||||||
|
blacklist('f16 _ _ dstreadshuffle')
|
||||||
|
blacklist('gpusrgb image _ _')
|
||||||
|
blacklist('glsrgb image _ _')
|
||||||
|
|
||||||
|
# Decoder tests are now performing gamma correct decodes. This means
|
||||||
|
# that, when viewing the results, we need to perform a gamma correct
|
||||||
|
# encode to PNG. Therefore, we run the image tests in srgb mode instead
|
||||||
|
# of 8888.
|
||||||
|
blacklist('8888 image _ _')
|
||||||
|
|
||||||
|
if 'Valgrind' in bot:
|
||||||
|
# These take 18+ hours to run.
|
||||||
|
blacklist('pdf gm _ fontmgr_iter')
|
||||||
|
blacklist('pdf _ _ PANO_20121023_214540.jpg')
|
||||||
|
blacklist('pdf skp _ worldjournal')
|
||||||
|
blacklist('pdf skp _ desk_baidu.skp')
|
||||||
|
blacklist('pdf skp _ desk_wikipedia.skp')
|
||||||
|
blacklist('_ svg _ _')
|
||||||
|
|
||||||
|
if 'iOS' in bot:
|
||||||
|
blacklist('gpu skp _ _')
|
||||||
|
blacklist('msaa skp _ _')
|
||||||
|
blacklist('msaa16 gm _ tilemodesProcess')
|
||||||
|
|
||||||
|
if 'Mac' in bot or 'iOS' in bot:
|
||||||
|
# CG fails on questionable bmps
|
||||||
|
blacklist('_ image gen_platf rgba32abf.bmp')
|
||||||
|
blacklist('_ image gen_platf rgb24prof.bmp')
|
||||||
|
blacklist('_ image gen_platf rgb24lprof.bmp')
|
||||||
|
blacklist('_ image gen_platf 8bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 4bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 32bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 24bpp-pixeldata-cropped.bmp')
|
||||||
|
|
||||||
|
# CG has unpredictable behavior on this questionable gif
|
||||||
|
# It's probably using uninitialized memory
|
||||||
|
blacklist('_ image gen_platf frame_larger_than_image.gif')
|
||||||
|
|
||||||
|
# CG has unpredictable behavior on incomplete pngs
|
||||||
|
# skbug.com/5774
|
||||||
|
blacklist('_ image gen_platf inc0.png')
|
||||||
|
blacklist('_ image gen_platf inc1.png')
|
||||||
|
blacklist('_ image gen_platf inc2.png')
|
||||||
|
blacklist('_ image gen_platf inc3.png')
|
||||||
|
blacklist('_ image gen_platf inc4.png')
|
||||||
|
blacklist('_ image gen_platf inc5.png')
|
||||||
|
blacklist('_ image gen_platf inc6.png')
|
||||||
|
blacklist('_ image gen_platf inc7.png')
|
||||||
|
blacklist('_ image gen_platf inc8.png')
|
||||||
|
blacklist('_ image gen_platf inc9.png')
|
||||||
|
blacklist('_ image gen_platf inc10.png')
|
||||||
|
blacklist('_ image gen_platf inc11.png')
|
||||||
|
blacklist('_ image gen_platf inc12.png')
|
||||||
|
blacklist('_ image gen_platf inc13.png')
|
||||||
|
blacklist('_ image gen_platf inc14.png')
|
||||||
|
|
||||||
|
# WIC fails on questionable bmps
|
||||||
|
if 'Win' in bot:
|
||||||
|
blacklist('_ image gen_platf rle8-height-negative.bmp')
|
||||||
|
blacklist('_ image gen_platf rle4-height-negative.bmp')
|
||||||
|
blacklist('_ image gen_platf pal8os2v2.bmp')
|
||||||
|
blacklist('_ image gen_platf pal8os2v2-16.bmp')
|
||||||
|
blacklist('_ image gen_platf rgba32abf.bmp')
|
||||||
|
blacklist('_ image gen_platf rgb24prof.bmp')
|
||||||
|
blacklist('_ image gen_platf rgb24lprof.bmp')
|
||||||
|
blacklist('_ image gen_platf 8bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 4bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 32bpp-pixeldata-cropped.bmp')
|
||||||
|
blacklist('_ image gen_platf 24bpp-pixeldata-cropped.bmp')
|
||||||
|
if 'x86_64' in bot and 'CPU' in bot:
|
||||||
|
# This GM triggers a SkSmallAllocator assert.
|
||||||
|
blacklist('_ gm _ composeshader_bitmap')
|
||||||
|
|
||||||
|
if 'Android' in bot or 'iOS' in bot:
|
||||||
|
# This test crashes the N9 (perhaps because of large malloc/frees). It also
|
||||||
|
# is fairly slow and not platform-specific. So we just disable it on all of
|
||||||
|
# Android and iOS. skia:5438
|
||||||
|
blacklist('_ test _ GrShape')
|
||||||
|
|
||||||
|
if 'Win8' in bot:
|
||||||
|
# bungeman: "Doesn't work on Windows anyway, produces unstable GMs with
|
||||||
|
# 'Unexpected error' from DirectWrite"
|
||||||
|
blacklist('_ gm _ fontscalerdistortable')
|
||||||
|
# skia:5636
|
||||||
|
blacklist('_ svg _ Nebraska-StateSeal.svg')
|
||||||
|
|
||||||
|
# skia:4095
|
||||||
|
bad_serialize_gms = ['bleed_image',
|
||||||
|
'c_gms',
|
||||||
|
'colortype',
|
||||||
|
'colortype_xfermodes',
|
||||||
|
'drawfilter',
|
||||||
|
'fontmgr_bounds_0.75_0',
|
||||||
|
'fontmgr_bounds_1_-0.25',
|
||||||
|
'fontmgr_bounds',
|
||||||
|
'fontmgr_match',
|
||||||
|
'fontmgr_iter',
|
||||||
|
'imagemasksubset']
|
||||||
|
|
||||||
|
# skia:5589
|
||||||
|
bad_serialize_gms.extend(['bitmapfilters',
|
||||||
|
'bitmapshaders',
|
||||||
|
'bleed',
|
||||||
|
'bleed_alpha_bmp',
|
||||||
|
'bleed_alpha_bmp_shader',
|
||||||
|
'convex_poly_clip',
|
||||||
|
'extractalpha',
|
||||||
|
'filterbitmap_checkerboard_32_32_g8',
|
||||||
|
'filterbitmap_image_mandrill_64',
|
||||||
|
'shadows',
|
||||||
|
'simpleaaclip_aaclip'])
|
||||||
|
# skia:5595
|
||||||
|
bad_serialize_gms.extend(['composeshader_bitmap',
|
||||||
|
'scaled_tilemodes_npot',
|
||||||
|
'scaled_tilemodes'])
|
||||||
|
|
||||||
|
# skia:5778
|
||||||
|
bad_serialize_gms.append('typefacerendering_pfaMac')
|
||||||
|
# skia:5942
|
||||||
|
bad_serialize_gms.append('parsedpaths')
|
||||||
|
|
||||||
|
# these use a custom image generator which doesn't serialize
|
||||||
|
bad_serialize_gms.append('ImageGeneratorExternal_rect')
|
||||||
|
bad_serialize_gms.append('ImageGeneratorExternal_shader')
|
||||||
|
|
||||||
|
# skia:6189
|
||||||
|
bad_serialize_gms.append('shadow_utils')
|
||||||
|
|
||||||
|
for test in bad_serialize_gms:
|
||||||
|
blacklist(['serialize-8888', 'gm', '_', test])
|
||||||
|
|
||||||
|
if 'Mac' not in bot:
|
||||||
|
for test in ['bleed_alpha_image', 'bleed_alpha_image_shader']:
|
||||||
|
blacklist(['serialize-8888', 'gm', '_', test])
|
||||||
|
# It looks like we skip these only for out-of-memory concerns.
|
||||||
|
if 'Win' in bot or 'Android' in bot:
|
||||||
|
for test in ['verylargebitmap', 'verylarge_picture_image']:
|
||||||
|
blacklist(['serialize-8888', 'gm', '_', test])
|
||||||
|
|
||||||
|
# skia:4769
|
||||||
|
for test in ['drawfilter']:
|
||||||
|
blacklist([ 'sp-8888', 'gm', '_', test])
|
||||||
|
blacklist([ 'pic-8888', 'gm', '_', test])
|
||||||
|
blacklist(['2ndpic-8888', 'gm', '_', test])
|
||||||
|
blacklist([ 'lite-8888', 'gm', '_', test])
|
||||||
|
# skia:4703
|
||||||
|
for test in ['image-cacherator-from-picture',
|
||||||
|
'image-cacherator-from-raster',
|
||||||
|
'image-cacherator-from-ctable']:
|
||||||
|
blacklist([ 'sp-8888', 'gm', '_', test])
|
||||||
|
blacklist([ 'pic-8888', 'gm', '_', test])
|
||||||
|
blacklist([ '2ndpic-8888', 'gm', '_', test])
|
||||||
|
blacklist(['serialize-8888', 'gm', '_', test])
|
||||||
|
|
||||||
|
# GM that requires raster-backed canvas
|
||||||
|
for test in ['gamut', 'complexclip4_bw', 'complexclip4_aa']:
|
||||||
|
blacklist([ 'sp-8888', 'gm', '_', test])
|
||||||
|
blacklist([ 'pic-8888', 'gm', '_', test])
|
||||||
|
blacklist([ 'lite-8888', 'gm', '_', test])
|
||||||
|
blacklist([ '2ndpic-8888', 'gm', '_', test])
|
||||||
|
blacklist(['serialize-8888', 'gm', '_', test])
|
||||||
|
|
||||||
|
# GM that not support tiles_rt
|
||||||
|
for test in ['complexclip4_bw', 'complexclip4_aa']:
|
||||||
|
blacklist([ 'tiles_rt-8888', 'gm', '_', test])
|
||||||
|
|
||||||
|
# Extensions for RAW images
|
||||||
|
r = ["arw", "cr2", "dng", "nef", "nrw", "orf", "raf", "rw2", "pef", "srw",
|
||||||
|
"ARW", "CR2", "DNG", "NEF", "NRW", "ORF", "RAF", "RW2", "PEF", "SRW"]
|
||||||
|
|
||||||
|
# skbug.com/4888
|
||||||
|
# Blacklist RAW images (and a few large PNGs) on GPU bots
|
||||||
|
# until we can resolve failures
|
||||||
|
if 'GPU' in bot:
|
||||||
|
blacklist('_ image _ interlaced1.png')
|
||||||
|
blacklist('_ image _ interlaced2.png')
|
||||||
|
blacklist('_ image _ interlaced3.png')
|
||||||
|
for raw_ext in r:
|
||||||
|
blacklist('_ image _ .%s' % raw_ext)
|
||||||
|
|
||||||
|
# Large image that overwhelms older Mac bots
|
||||||
|
if 'MacMini4.1-GPU' in bot:
|
||||||
|
blacklist('_ image _ abnormal.wbmp')
|
||||||
|
blacklist(['msaa16', 'gm', '_', 'blurcircles'])
|
||||||
|
|
||||||
|
if 'Nexus5' in bot:
|
||||||
|
# skia:5876
|
||||||
|
blacklist(['msaa4', 'gm', '_', 'encode-platform'])
|
||||||
|
|
||||||
|
match = []
|
||||||
|
if 'Valgrind' in bot: # skia:3021
|
||||||
|
match.append('~Threaded')
|
||||||
|
|
||||||
|
if 'AndroidOne' in bot: # skia:4711
|
||||||
|
match.append('~WritePixels')
|
||||||
|
|
||||||
|
if 'NexusPlayer' in bot:
|
||||||
|
match.append('~ResourceCache')
|
||||||
|
|
||||||
|
if 'Nexus10' in bot:
|
||||||
|
match.append('~CopySurface') # skia:5509
|
||||||
|
match.append('~SRGBReadWritePixels') # skia:6097
|
||||||
|
|
||||||
|
if 'ANGLE' in bot and 'Debug' in bot:
|
||||||
|
match.append('~GLPrograms') # skia:4717
|
||||||
|
|
||||||
|
if 'MSAN' in bot:
|
||||||
|
match.extend(['~Once', '~Shared']) # Not sure what's up with these tests.
|
||||||
|
|
||||||
|
if 'TSAN' in bot:
|
||||||
|
match.extend(['~ReadWriteAlpha']) # Flaky on TSAN-covered on nvidia bots.
|
||||||
|
match.extend(['~RGBA4444TextureTest', # Flakier than they are important.
|
||||||
|
'~RGB565TextureTest'])
|
||||||
|
|
||||||
|
if 'Vulkan' in bot and 'Adreno' in bot:
|
||||||
|
# skia:5777
|
||||||
|
match.extend(['~XfermodeImageFilterCroppedInput',
|
||||||
|
'~GrTextureStripAtlasFlush',
|
||||||
|
'~CopySurface'])
|
||||||
|
|
||||||
|
if 'Vulkan' in bot and 'NexusPlayer' in bot:
|
||||||
|
match.extend(['~hardstop_gradient', # skia:6037
|
||||||
|
'~gradients_dup_color_stops', # skia:6037
|
||||||
|
'~gradients_no_texture$', # skia:6132
|
||||||
|
'~tilemodes', # skia:6132
|
||||||
|
'~shadertext$', # skia:6132
|
||||||
|
'~bitmapfilters']) # skia:6132
|
||||||
|
|
||||||
|
if 'Vulkan' in bot and 'GTX1070' in bot and 'Win' in bot:
|
||||||
|
# skia:6092
|
||||||
|
match.append('~GPUMemorySize')
|
||||||
|
|
||||||
|
if 'IntelIris540' in bot and 'ANGLE' in bot:
|
||||||
|
match.append('~IntTexture') # skia:6086
|
||||||
|
|
||||||
|
if blacklisted:
|
||||||
|
args.append('--blacklist')
|
||||||
|
args.extend(blacklisted)
|
||||||
|
|
||||||
|
if match:
|
||||||
|
args.append('--match')
|
||||||
|
args.extend(match)
|
||||||
|
|
||||||
|
# These bots run out of memory running RAW codec tests. Do not run them in
|
||||||
|
# parallel
|
||||||
|
if ('NexusPlayer' in bot or 'Nexus5' in bot or 'Nexus9' in bot
|
||||||
|
or 'Win8-MSVC-ShuttleB' in bot):
|
||||||
|
args.append('--noRAW_threading')
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def key_params(api):
|
||||||
|
"""Build a unique key from the builder name (as a list).
|
||||||
|
|
||||||
|
E.g. arch x86 gpu GeForce320M mode MacMini4.1 os Mac10.6
|
||||||
|
"""
|
||||||
|
# Don't bother to include role, which is always Test.
|
||||||
|
# TryBots are uploaded elsewhere so they can use the same key.
|
||||||
|
blacklist = ['role', 'is_trybot']
|
||||||
|
|
||||||
|
flat = []
|
||||||
|
for k in sorted(api.vars.builder_cfg.keys()):
|
||||||
|
if k not in blacklist:
|
||||||
|
flat.append(k)
|
||||||
|
flat.append(api.vars.builder_cfg[k])
|
||||||
|
return flat
|
||||||
|
|
||||||
|
|
||||||
|
def test_steps(api):
|
||||||
|
"""Run the DM test."""
|
||||||
|
use_hash_file = False
|
||||||
|
if api.vars.upload_dm_results:
|
||||||
|
# This must run before we write anything into
|
||||||
|
# api.flavor.device_dirs.dm_dir or we may end up deleting our
|
||||||
|
# output on machines where they're the same.
|
||||||
|
api.flavor.create_clean_host_dir(api.vars.dm_dir)
|
||||||
|
host_dm_dir = str(api.vars.dm_dir)
|
||||||
|
device_dm_dir = str(api.flavor.device_dirs.dm_dir)
|
||||||
|
if host_dm_dir != device_dm_dir:
|
||||||
|
api.flavor.create_clean_device_dir(device_dm_dir)
|
||||||
|
|
||||||
|
# Obtain the list of already-generated hashes.
|
||||||
|
hash_filename = 'uninteresting_hashes.txt'
|
||||||
|
|
||||||
|
# Ensure that the tmp_dir exists.
|
||||||
|
api.run.run_once(api.file.makedirs,
|
||||||
|
'tmp_dir',
|
||||||
|
api.vars.tmp_dir,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
host_hashes_file = api.vars.tmp_dir.join(hash_filename)
|
||||||
|
hashes_file = api.flavor.device_path_join(
|
||||||
|
api.flavor.device_dirs.tmp_dir, hash_filename)
|
||||||
|
api.run(
|
||||||
|
api.python.inline,
|
||||||
|
'get uninteresting hashes',
|
||||||
|
program="""
|
||||||
|
import contextlib
|
||||||
|
import math
|
||||||
|
import socket
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import urllib2
|
||||||
|
|
||||||
|
HASHES_URL = 'https://gold.skia.org/_/hashes'
|
||||||
|
RETRIES = 5
|
||||||
|
TIMEOUT = 60
|
||||||
|
WAIT_BASE = 15
|
||||||
|
|
||||||
|
socket.setdefaulttimeout(TIMEOUT)
|
||||||
|
for retry in range(RETRIES):
|
||||||
|
try:
|
||||||
|
with contextlib.closing(
|
||||||
|
urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:
|
||||||
|
hashes = w.read()
|
||||||
|
with open(sys.argv[1], 'w') as f:
|
||||||
|
f.write(hashes)
|
||||||
|
break
|
||||||
|
except Exception as e:
|
||||||
|
print 'Failed to get uninteresting hashes from %s:' % HASHES_URL
|
||||||
|
print e
|
||||||
|
if retry == RETRIES:
|
||||||
|
raise
|
||||||
|
waittime = WAIT_BASE * math.pow(2, retry)
|
||||||
|
print 'Retry in %d seconds.' % waittime
|
||||||
|
time.sleep(waittime)
|
||||||
|
""",
|
||||||
|
args=[host_hashes_file],
|
||||||
|
cwd=api.vars.skia_dir,
|
||||||
|
abort_on_failure=False,
|
||||||
|
fail_build_on_failure=False,
|
||||||
|
infra_step=True)
|
||||||
|
|
||||||
|
if api.path.exists(host_hashes_file):
|
||||||
|
api.flavor.copy_file_to_device(host_hashes_file, hashes_file)
|
||||||
|
use_hash_file = True
|
||||||
|
|
||||||
|
# Run DM.
|
||||||
|
properties = [
|
||||||
|
'gitHash', api.vars.got_revision,
|
||||||
|
'master', api.vars.master_name,
|
||||||
|
'builder', api.vars.builder_name,
|
||||||
|
'build_number', api.vars.build_number,
|
||||||
|
]
|
||||||
|
if api.vars.is_trybot:
|
||||||
|
properties.extend([
|
||||||
|
'issue', api.vars.issue,
|
||||||
|
'patchset', api.vars.patchset,
|
||||||
|
'patch_storage', api.vars.patch_storage,
|
||||||
|
])
|
||||||
|
if api.vars.no_buildbot:
|
||||||
|
properties.extend(['no_buildbot', 'True'])
|
||||||
|
properties.extend(['swarming_bot_id', api.vars.swarming_bot_id])
|
||||||
|
properties.extend(['swarming_task_id', api.vars.swarming_task_id])
|
||||||
|
|
||||||
|
args = [
|
||||||
|
'dm',
|
||||||
|
'--undefok', # This helps branches that may not know new flags.
|
||||||
|
'--resourcePath', api.flavor.device_dirs.resource_dir,
|
||||||
|
'--skps', api.flavor.device_dirs.skp_dir,
|
||||||
|
'--images', api.flavor.device_path_join(
|
||||||
|
api.flavor.device_dirs.images_dir, 'dm'),
|
||||||
|
'--colorImages', api.flavor.device_path_join(
|
||||||
|
api.flavor.device_dirs.images_dir, 'colorspace'),
|
||||||
|
'--nameByHash',
|
||||||
|
'--properties'
|
||||||
|
] + properties
|
||||||
|
|
||||||
|
args.extend(['--svgs', api.flavor.device_dirs.svg_dir])
|
||||||
|
|
||||||
|
args.append('--key')
|
||||||
|
args.extend(key_params(api))
|
||||||
|
if use_hash_file:
|
||||||
|
args.extend(['--uninterestingHashesFile', hashes_file])
|
||||||
|
if api.vars.upload_dm_results:
|
||||||
|
args.extend(['--writePath', api.flavor.device_dirs.dm_dir])
|
||||||
|
|
||||||
|
skip_flag = None
|
||||||
|
if api.vars.builder_cfg.get('cpu_or_gpu') == 'CPU':
|
||||||
|
skip_flag = '--nogpu'
|
||||||
|
elif api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU':
|
||||||
|
skip_flag = '--nocpu'
|
||||||
|
if skip_flag:
|
||||||
|
args.append(skip_flag)
|
||||||
|
args.extend(dm_flags(api.vars.builder_name))
|
||||||
|
|
||||||
|
api.run(api.flavor.step, 'dm', cmd=args,
|
||||||
|
abort_on_failure=False,
|
||||||
|
env=api.vars.default_env)
|
||||||
|
|
||||||
|
if api.vars.upload_dm_results:
|
||||||
|
# Copy images and JSON to host machine if needed.
|
||||||
|
api.flavor.copy_directory_contents_to_host(
|
||||||
|
api.flavor.device_dirs.dm_dir, api.vars.dm_dir)
|
||||||
|
|
||||||
|
# See skia:2789.
|
||||||
|
if ('Valgrind' in api.vars.builder_name and
|
||||||
|
api.vars.builder_cfg.get('cpu_or_gpu') == 'GPU'):
|
||||||
|
abandonGpuContext = list(args)
|
||||||
|
abandonGpuContext.append('--abandonGpuContext')
|
||||||
|
api.run(api.flavor.step, 'dm --abandonGpuContext',
|
||||||
|
cmd=abandonGpuContext, abort_on_failure=False)
|
||||||
|
preAbandonGpuContext = list(args)
|
||||||
|
preAbandonGpuContext.append('--preAbandonGpuContext')
|
||||||
|
api.run(api.flavor.step, 'dm --preAbandonGpuContext',
|
||||||
|
cmd=preAbandonGpuContext, abort_on_failure=False,
|
||||||
|
env=api.vars.default_env)
|
||||||
|
|
||||||
|
|
||||||
|
class TestApi(recipe_api.RecipeApi):
|
||||||
|
def run(self):
|
||||||
|
self.m.core.setup()
|
||||||
|
try:
|
||||||
|
self.m.flavor.install_everything()
|
||||||
|
test_steps(self.m)
|
||||||
|
finally:
|
||||||
|
self.m.flavor.cleanup_steps()
|
||||||
|
self.m.run.check_failure()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user