aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules/flavor/example.py
blob: f29a78c42c96f4f51585619dfcd2659046e37dc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# 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 = [
  'flavor',
  'recipe_engine/properties',
  'recipe_engine/raw_io',
  'run',
  'vars',
]


def RunSteps(api):
  api.vars.setup()
  api.flavor.setup()

  api.flavor.compile('dm')
  api.flavor.copy_extra_build_products(api.vars.swarming_out_dir)
  assert api.flavor.out_dir != ''
  if 'Build' not in api.properties['buildername']:
    try:
      api.flavor.copy_file_to_device('file.txt', 'file.txt')
      api.flavor.create_clean_host_dir('results_dir')
      api.flavor.create_clean_device_dir('device_results_dir')
      api.flavor.install_everything()
      api.flavor.step('dm', ['dm', '--some-flag'])
      api.flavor.copy_directory_contents_to_host(
          api.flavor.device_dirs.dm_dir, api.vars.dm_dir)
      api.flavor.copy_directory_contents_to_host(
          api.flavor.device_dirs.perf_data_dir, api.vars.perf_data_dir)
    finally:
      api.flavor.cleanup_steps()
  api.run.check_failure()


TEST_BUILDERS = [
  'Build-Mac-Clang-arm64-Debug-Android_Vulkan',
  'Build-Mac-Clang-x86_64-Debug-CommandBuffer',
  'Build-Ubuntu-Clang-x86_64-Release-Mini',
  'Build-Ubuntu-Clang-x86_64-Release-Shared',
  'Build-Ubuntu-Clang-x86_64-Release-Vulkan',
  '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-Flutter_Android',
  'Build-Ubuntu-GCC-x86_64-Release-Mesa',
  'Build-Ubuntu-GCC-x86_64-Release-PDFium',
  'Build-Ubuntu-GCC-x86_64-Release-PDFium_SkiaPaths',
  'Build-Win-Clang-arm64-Release-Android_FrameworkDefs',
  'Build-Win-MSVC-x86_64-Debug-GDI',
  'Build-Win-MSVC-x86_64-Debug-NoGPU',
  'Build-Win-MSVC-x86_64-Release-Exceptions',
  'Build-Win-MSVC-x86_64-Release-Vulkan',
  'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-Android',
  'Perf-ChromeOS-Clang-Chromebook_513C24_K01-GPU-MaliT860-arm-Release',
  'Perf-Chromecast-GCC-Chorizo-CPU-Cortex_A7-arm-Release',
  'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-ASAN',
  'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-MSAN',
  'Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release',
  ('Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-'
   'Valgrind_AbandonGpuContext'),
  'Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug',
  'Test-iOS-Clang-iPadMini4-GPU-GX6450-arm64-Debug',
]


def GenTests(api):
  for buildername in TEST_BUILDERS:
    test = (
      api.test(buildername) +
      api.properties(buildername=buildername,
                     repository='https://skia.googlesource.com/skia.git',
                     revision='abc123',
                     path_config='kitchen',
                     swarm_out_dir='[SWARM_OUT_DIR]')
    )
    if 'Chromebook' in buildername:
      test += api.step_data(
          'read chromeos ip',
          stdout=api.raw_io.output('{"user_ip":"foo@127.0.0.1"}'))
    yield test

  builder = 'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-Android'
  yield (
      api.test('failed_infra_step') +
      api.properties(buildername=builder,
                     repository='https://skia.googlesource.com/skia.git',
                     revision='abc123',
                     path_config='kitchen',
                     swarm_out_dir='[SWARM_OUT_DIR]') +
      api.step_data('dump log', retcode=1)
  )

  builder = 'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-Android'
  yield (
      api.test('failed_read_version') +
      api.properties(buildername=builder,
                     repository='https://skia.googlesource.com/skia.git',
                     revision='abc123',
                     path_config='kitchen',
                     swarm_out_dir='[SWARM_OUT_DIR]') +
      api.step_data('read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION',
                    retcode=1)
  )