xref: /aosp_15_r20/external/skia/infra/bots/recipes/compile.py (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2016 The Chromium Authors. All rights reserved.
2*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file.
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Worker# Recipe module for compiling Skia when the checkout has already been done
7*c8dee2aaSAndroid Build Coastguard Worker# (e.g. repo brought in via CAS)
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard WorkerPYTHON_VERSION_COMPATIBILITY = "PY3"
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard WorkerDEPS = [
12*c8dee2aaSAndroid Build Coastguard Worker  'build',
13*c8dee2aaSAndroid Build Coastguard Worker  'checkout',
14*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/context',
15*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/file',
16*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/json',
17*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/path',
18*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/platform',
19*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/properties',
20*c8dee2aaSAndroid Build Coastguard Worker  'recipe_engine/step',
21*c8dee2aaSAndroid Build Coastguard Worker  'run',
22*c8dee2aaSAndroid Build Coastguard Worker  'vars',
23*c8dee2aaSAndroid Build Coastguard Worker]
24*c8dee2aaSAndroid Build Coastguard Worker
25*c8dee2aaSAndroid Build Coastguard Worker
26*c8dee2aaSAndroid Build Coastguard Workerdef RunSteps(api):
27*c8dee2aaSAndroid Build Coastguard Worker  api.vars.setup()
28*c8dee2aaSAndroid Build Coastguard Worker
29*c8dee2aaSAndroid Build Coastguard Worker  checkout_root = api.path.start_dir
30*c8dee2aaSAndroid Build Coastguard Worker  out_dir = api.vars.cache_dir.joinpath(
31*c8dee2aaSAndroid Build Coastguard Worker      'work', 'skia', 'out', api.vars.builder_name, api.vars.configuration)
32*c8dee2aaSAndroid Build Coastguard Worker
33*c8dee2aaSAndroid Build Coastguard Worker  try:
34*c8dee2aaSAndroid Build Coastguard Worker    api.build(checkout_root=checkout_root, out_dir=out_dir)
35*c8dee2aaSAndroid Build Coastguard Worker
36*c8dee2aaSAndroid Build Coastguard Worker    # TODO(borenet): Move this out of the try/finally.
37*c8dee2aaSAndroid Build Coastguard Worker    dst = api.vars.swarming_out_dir
38*c8dee2aaSAndroid Build Coastguard Worker    api.build.copy_build_products(out_dir=out_dir, dst=dst)
39*c8dee2aaSAndroid Build Coastguard Worker  finally:
40*c8dee2aaSAndroid Build Coastguard Worker    if 'Win' in api.vars.builder_cfg.get('os', ''):
41*c8dee2aaSAndroid Build Coastguard Worker      script = api.build.resource('cleanup_win_processes.py')
42*c8dee2aaSAndroid Build Coastguard Worker      api.step(
43*c8dee2aaSAndroid Build Coastguard Worker          name='cleanup',
44*c8dee2aaSAndroid Build Coastguard Worker          cmd=['vpython3', script],
45*c8dee2aaSAndroid Build Coastguard Worker          infra_step=True)
46*c8dee2aaSAndroid Build Coastguard Worker
47*c8dee2aaSAndroid Build Coastguard Worker  api.run.check_failure()
48*c8dee2aaSAndroid Build Coastguard Worker
49*c8dee2aaSAndroid Build Coastguard Worker
50*c8dee2aaSAndroid Build Coastguard WorkerTEST_BUILDERS = [
51*c8dee2aaSAndroid Build Coastguard Worker  'Build-Win-Clang-x86-Debug',
52*c8dee2aaSAndroid Build Coastguard Worker]
53*c8dee2aaSAndroid Build Coastguard Worker
54*c8dee2aaSAndroid Build Coastguard Worker
55*c8dee2aaSAndroid Build Coastguard Workerdef GenTests(api):
56*c8dee2aaSAndroid Build Coastguard Worker  for builder in TEST_BUILDERS:
57*c8dee2aaSAndroid Build Coastguard Worker    test = (
58*c8dee2aaSAndroid Build Coastguard Worker      api.test(builder) +
59*c8dee2aaSAndroid Build Coastguard Worker      api.properties(buildername=builder,
60*c8dee2aaSAndroid Build Coastguard Worker                     repository='https://skia.googlesource.com/skia.git',
61*c8dee2aaSAndroid Build Coastguard Worker                     revision='abc123',
62*c8dee2aaSAndroid Build Coastguard Worker                     path_config='kitchen',
63*c8dee2aaSAndroid Build Coastguard Worker                     swarm_out_dir='[SWARM_OUT_DIR]')
64*c8dee2aaSAndroid Build Coastguard Worker    )
65*c8dee2aaSAndroid Build Coastguard Worker    if 'Win' in builder:
66*c8dee2aaSAndroid Build Coastguard Worker      test += api.platform('win', 64)
67*c8dee2aaSAndroid Build Coastguard Worker    yield test
68