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

Side by Side Diff: scripts/slave/recipe_modules/skia/api.py

Issue 1829423002: Skia: Run recipes as swarming tasks (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@swarm_fix
Patch Set: Fix presubmit Created 4 years, 8 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 | « no previous file | scripts/slave/recipe_modules/skia_swarming/api.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 5
6 import json 6 import json
7 import os 7 import os
8 import re 8 import re
9 import sys 9 import sys
10 10
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 332
333 def _writefile(self, filename, contents): 333 def _writefile(self, filename, contents):
334 """Convenience function for writing files.""" 334 """Convenience function for writing files."""
335 return self.m.file.write('write %s' % self.m.path.basename(filename), 335 return self.m.file.write('write %s' % self.m.path.basename(filename),
336 filename, contents, infra_step=True) 336 filename, contents, infra_step=True)
337 337
338 def rmtree(self, path): 338 def rmtree(self, path):
339 """Wrapper around api.file.rmtree with environment fix.""" 339 """Wrapper around api.file.rmtree with environment fix."""
340 env = {} 340 env = {}
341 if self.running_in_swarming: 341 if self.running_in_swarming:
342 env['PYTHONPATH'] = str(self.skia_dir.join('infra', 'bots', 'build', 342 env['PYTHONPATH'] = str(self.m.path.join('build', 'scripts'))
343 'scripts'))
344 self.m.file.rmtree(self.m.path.basename(path), 343 self.m.file.rmtree(self.m.path.basename(path),
345 path, 344 path,
346 env=env, 345 env=env,
347 infra_step=True) 346 infra_step=True)
348 347
349 def run(self, steptype, name, abort_on_failure=True, 348 def run(self, steptype, name, abort_on_failure=True,
350 fail_build_on_failure=True, env=None, **kwargs): 349 fail_build_on_failure=True, env=None, **kwargs):
351 """Run a step. If it fails, keep going but mark the build status failed.""" 350 """Run a step. If it fails, keep going but mark the build status failed."""
352 env = dict(env or {}) 351 env = dict(env or {})
353 env.update(self.default_env) 352 env.update(self.default_env)
(...skipping 13 matching lines...) Expand all
367 source=source, 366 source=source,
368 bucket=bucket, 367 bucket=bucket,
369 dest=dest, 368 dest=dest,
370 args=['-R'], 369 args=['-R'],
371 env=self.gsutil_env_skia_infra, 370 env=self.gsutil_env_skia_infra,
372 abort_on_failure=False) 371 abort_on_failure=False)
373 372
374 def _download_and_copy_dir(self, version_file, gs_path_tmpl, host_path, 373 def _download_and_copy_dir(self, version_file, gs_path_tmpl, host_path,
375 device_path, test_expected_version, 374 device_path, test_expected_version,
376 test_actual_version): 375 test_actual_version):
376 actual_version_file = self.m.path.join(self.tmp_dir, version_file)
377 # If we're running as a Swarming task, we should've received the test inputs 377 # If we're running as a Swarming task, we should've received the test inputs
378 # via the isolate server. Only download if we're not running in Swarming. 378 # via the isolate server. Only download if we're not running in Swarming.
379 if self.running_in_swarming: 379 if not self.running_in_swarming:
380 actual_version_file = self.m.path.join(host_path, version_file)
381 else:
382 # Ensure that the tmp_dir exists. 380 # Ensure that the tmp_dir exists.
383 self._run_once(self.m.file.makedirs, 381 self._run_once(self.m.file.makedirs,
384 'tmp_dir', 382 'tmp_dir',
385 self.tmp_dir, 383 self.tmp_dir,
386 infra_step=True) 384 infra_step=True)
387 actual_version_file = self.m.path.join(self.tmp_dir, version_file)
388 385
389 # Find the actually-downloaded version. 386 # Find the actually-downloaded version.
390 try: 387 try:
391 actual_version = self._readfile(actual_version_file, 388 actual_version = self._readfile(actual_version_file,
392 name='Get downloaded %s' % version_file, 389 name='Get downloaded %s' % version_file,
393 test_data=test_actual_version).rstrip() 390 test_data=test_actual_version).rstrip()
394 except self.m.step.StepFailure: 391 except self.m.step.StepFailure:
395 if self.running_in_swarming: 392 if self.running_in_swarming:
396 raise # pragma: no cover 393 raise # pragma: no cover
397 actual_version = VERSION_NONE 394 actual_version = VERSION_NONE
(...skipping 18 matching lines...) Expand all
416 global_constants.GS_GM_BUCKET, 413 global_constants.GS_GM_BUCKET,
417 (gs_path_tmpl % expected_version) + '/*', 414 (gs_path_tmpl % expected_version) + '/*',
418 host_path, 415 host_path,
419 name='download %s' % self.m.path.basename(host_path), 416 name='download %s' % self.m.path.basename(host_path),
420 args=['-R'], 417 args=['-R'],
421 env=self.gsutil_env_chromium_skia_gm) 418 env=self.gsutil_env_chromium_skia_gm)
422 self._writefile(actual_version_file, expected_version) 419 self._writefile(actual_version_file, expected_version)
423 actual_version = expected_version 420 actual_version = expected_version
424 421
425 # Copy to device. 422 # Copy to device.
426 if self.running_in_swarming: 423 device_version_file = self.flavor.device_path_join(
427 device_version_file = self.flavor.device_path_join( 424 self.device_dirs.tmp_dir, version_file)
428 device_path, version_file)
429 else:
430 device_version_file = self.flavor.device_path_join(
431 self.device_dirs.tmp_dir, version_file)
432 if str(actual_version_file) != str(device_version_file): 425 if str(actual_version_file) != str(device_version_file):
433 try: 426 try:
434 device_version = self.flavor.read_file_on_device(device_version_file) 427 device_version = self.flavor.read_file_on_device(device_version_file)
435 except self.m.step.StepFailure: 428 except self.m.step.StepFailure:
436 device_version = VERSION_NONE 429 device_version = VERSION_NONE
437 if device_version != actual_version: 430 if device_version != actual_version:
438 self.flavor.remove_file_on_device(device_version_file) 431 self.flavor.remove_file_on_device(device_version_file)
439 self.flavor.create_clean_device_dir(device_path) 432 self.flavor.create_clean_device_dir(device_path)
440 self.flavor.copy_directory_contents_to_device(host_path, device_path) 433 self.flavor.copy_directory_contents_to_device(host_path, device_path)
441 434
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 # Don't bother to include role, which is always Test. 790 # Don't bother to include role, which is always Test.
798 # TryBots are uploaded elsewhere so they can use the same key. 791 # TryBots are uploaded elsewhere so they can use the same key.
799 blacklist = ['role', 'is_trybot'] 792 blacklist = ['role', 'is_trybot']
800 793
801 flat = [] 794 flat = []
802 for k in sorted(self.builder_cfg.keys()): 795 for k in sorted(self.builder_cfg.keys()):
803 if k not in blacklist: 796 if k not in blacklist:
804 flat.append(k) 797 flat.append(k)
805 flat.append(self.builder_cfg[k]) 798 flat.append(self.builder_cfg[k])
806 return flat 799 return flat
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/skia_swarming/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698