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

Side by Side Diff: infra/bots/recipe_modules/vars/api.py

Issue 2198173002: Re-organize Skia recipes (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix missing dependency Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « infra/bots/recipe_modules/vars/__init__.py ('k') | infra/bots/recipes/swarm_RecreateSKPs.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5
6 # pylint: disable=W0201
7
8
9 from recipe_engine import recipe_api
10 import os
11
12
13 BOTO_CHROMIUM_SKIA_GM = 'chromium-skia-gm.boto'
14
15
16 class SkiaVarsApi(recipe_api.RecipeApi):
17
18 def make_path(self, *path):
19 """Return a Path object for the given path."""
20 key = 'custom_%s' % '_'.join(path)
21 self.m.path.c.base_paths[key] = tuple(path)
22 return self.m.path[key]
23
24 def gsutil_env(self, boto_file):
25 """Environment variables for gsutil."""
26 boto_path = None
27 if boto_file:
28 boto_path = self.m.path.join(self.home_dir, boto_file)
29 return {'AWS_CREDENTIAL_FILE': boto_path,
30 'BOTO_CONFIG': boto_path}
31
32 @property
33 def home_dir(self):
34 """Find the home directory."""
35 home_dir = os.path.expanduser('~')
36 if self._test_data.enabled:
37 home_dir = '[HOME]'
38 return home_dir
39
40 def setup(self):
41 """Prepare the variables."""
42 # Setup
43 self.builder_name = self.m.properties['buildername']
44 self.master_name = self.m.properties['mastername']
45 self.slave_name = self.m.properties['slavename']
46 self.build_number = self.m.properties['buildnumber']
47
48 self.slave_dir = self.m.path['slave_build']
49 self.checkout_root = self.slave_dir
50 self.default_env = {}
51 self.gclient_env = {}
52 self.is_compile_bot = self.builder_name.startswith('Build-')
53
54 self.default_env['CHROME_HEADLESS'] = '1'
55 # The 'depot_tools' directory comes from recipe DEPS and isn't provided by
56 # default. We have to set it manually.
57 self.m.path.c.base_paths['depot_tools'] = (
58 self.m.path.c.base_paths['slave_build'] +
59 ('skia', 'infra', 'bots', '.recipe_deps', 'depot_tools'))
60 if 'Win' in self.builder_name:
61 self.m.path.c.base_paths['depot_tools'] = (
62 'c:\\', 'Users', 'chrome-bot', 'depot_tools')
63
64 # Compile bots keep a persistent checkout.
65 self.persistent_checkout = (self.is_compile_bot or
66 'RecreateSKPs' in self.builder_name)
67 if self.persistent_checkout:
68 if 'Win' in self.builder_name:
69 self.checkout_root = self.make_path('C:\\', 'b', 'work')
70 self.gclient_cache = self.make_path('C:\\', 'b', 'cache')
71 else:
72 self.checkout_root = self.make_path('/', 'b', 'work')
73 self.gclient_cache = self.make_path('/', 'b', 'cache')
74
75 # got_revision is filled in after checkout steps.
76 self.got_revision = None
77 else:
78 # If there's no persistent checkout, then we have to asume we got the
79 # correct revision of the files from isolate.
80 self.got_revision = self.m.properties['revision']
81
82 self.skia_dir = self.checkout_root.join('skia')
83 if not self.persistent_checkout:
84 self.m.path['checkout'] = self.skia_dir
85
86 self.infrabots_dir = self.skia_dir.join('infra', 'bots')
87 self.resource_dir = self.skia_dir.join('resources')
88 self.images_dir = self.slave_dir.join('skimage')
89 self.skia_out = self.skia_dir.join('out', self.builder_name)
90 self.swarming_out_dir = self.make_path(self.m.properties['swarm_out_dir'])
91 self.local_skp_dir = self.slave_dir.join('skp')
92 if not self.is_compile_bot:
93 self.skia_out = self.slave_dir.join('out')
94 self.tmp_dir = self.m.path['slave_build'].join('tmp')
95
96 # Some bots also require a checkout of chromium.
97 self.need_chromium_checkout = 'CommandBuffer' in self.builder_name
98 if 'CommandBuffer' in self.builder_name:
99 self.gclient_env['GYP_CHROMIUM_NO_ACTION'] = '0'
100 if ((self.is_compile_bot and
101 'SAN' in self.builder_name) or
102 'RecreateSKPs' in self.builder_name):
103 self.need_chromium_checkout = True
104 if 'RecreateSKPs' in self.builder_name:
105 self.gclient_env['CPPFLAGS'] = (
106 '-DSK_ALLOW_CROSSPROCESS_PICTUREIMAGEFILTERS=1')
107
108 # Some bots also require a checkout of PDFium.
109 self.need_pdfium_checkout = 'PDFium' in self.builder_name
110
111
112 def update_with_builder_spec(self, builder_spec):
113 """Set more variables based on the builder_spec."""
114 # Obtain the spec for this builder from the Skia repo. Use it to set more
115 # properties.
116 self.builder_spec = builder_spec
117
118 self.builder_cfg = self.builder_spec['builder_cfg']
119 self.role = self.builder_cfg['role']
120
121 self.configuration = self.builder_spec['configuration']
122 self.default_env.update({'SKIA_OUT': self.skia_out,
123 'BUILDTYPE': self.configuration})
124 self.default_env.update(self.builder_spec['env'])
125 self.build_targets = [str(t) for t in self.builder_spec['build_targets']]
126 self.do_compile_steps = self.builder_spec.get('do_compile_steps', True)
127 self.do_test_steps = self.builder_spec['do_test_steps']
128 self.do_perf_steps = self.builder_spec['do_perf_steps']
129 self.is_trybot = self.builder_cfg['is_trybot']
130 self.issue = None
131 self.patchset = None
132 self.rietveld = None
133 if self.is_trybot:
134 self.issue = self.m.properties['issue']
135 self.patchset = self.m.properties['patchset']
136 self.rietveld = self.m.properties['rietveld']
137 self.upload_dm_results = self.builder_spec['upload_dm_results']
138 self.upload_perf_results = self.builder_spec['upload_perf_results']
139 self.dm_dir = self.m.path.join(
140 self.swarming_out_dir, 'dm')
141 self.perf_data_dir = self.m.path.join(self.swarming_out_dir,
142 'perfdata', self.builder_name, 'data')
143 self.dm_flags = self.builder_spec['dm_flags']
144 self.nanobench_flags = self.builder_spec['nanobench_flags']
OLDNEW
« no previous file with comments | « infra/bots/recipe_modules/vars/__init__.py ('k') | infra/bots/recipes/swarm_RecreateSKPs.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698