xref: /aosp_15_r20/external/crosvm/infra/recipes/build_windows.py (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2022 The ChromiumOS Authors
2*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file.
4*bb4ee6a4SAndroid Build Coastguard Worker
5*bb4ee6a4SAndroid Build Coastguard Workerfrom recipe_engine.post_process import Filter
6*bb4ee6a4SAndroid Build Coastguard Worker
7*bb4ee6a4SAndroid Build Coastguard WorkerDEPS = [
8*bb4ee6a4SAndroid Build Coastguard Worker    "crosvm",
9*bb4ee6a4SAndroid Build Coastguard Worker    "recipe_engine/buildbucket",
10*bb4ee6a4SAndroid Build Coastguard Worker    "recipe_engine/context",
11*bb4ee6a4SAndroid Build Coastguard Worker    "recipe_engine/properties",
12*bb4ee6a4SAndroid Build Coastguard Worker    "recipe_engine/step",
13*bb4ee6a4SAndroid Build Coastguard Worker]
14*bb4ee6a4SAndroid Build Coastguard Worker
15*bb4ee6a4SAndroid Build Coastguard Worker
16*bb4ee6a4SAndroid Build Coastguard Workerdef RunSteps(api):
17*bb4ee6a4SAndroid Build Coastguard Worker    # Note: The recipe does work on linux as well, if the required dependencies have been installed
18*bb4ee6a4SAndroid Build Coastguard Worker    # on the host via ./tools/install-deps.
19*bb4ee6a4SAndroid Build Coastguard Worker    # This allows the build to be tested via `./recipe.py run build_windows`
20*bb4ee6a4SAndroid Build Coastguard Worker    with api.crosvm.host_build_context():
21*bb4ee6a4SAndroid Build Coastguard Worker        api.step(
22*bb4ee6a4SAndroid Build Coastguard Worker            "Build crosvm tests",
23*bb4ee6a4SAndroid Build Coastguard Worker            [
24*bb4ee6a4SAndroid Build Coastguard Worker                "vpython3",
25*bb4ee6a4SAndroid Build Coastguard Worker                "./tools/run_tests",
26*bb4ee6a4SAndroid Build Coastguard Worker                "--verbose",
27*bb4ee6a4SAndroid Build Coastguard Worker                "--build-only",
28*bb4ee6a4SAndroid Build Coastguard Worker            ],
29*bb4ee6a4SAndroid Build Coastguard Worker        )
30*bb4ee6a4SAndroid Build Coastguard Worker        api.step(
31*bb4ee6a4SAndroid Build Coastguard Worker            "Run crosvm tests",
32*bb4ee6a4SAndroid Build Coastguard Worker            [
33*bb4ee6a4SAndroid Build Coastguard Worker                "vpython3",
34*bb4ee6a4SAndroid Build Coastguard Worker                "./tools/run_tests",
35*bb4ee6a4SAndroid Build Coastguard Worker                "--verbose",
36*bb4ee6a4SAndroid Build Coastguard Worker            ],
37*bb4ee6a4SAndroid Build Coastguard Worker        )
38*bb4ee6a4SAndroid Build Coastguard Worker        api.step(
39*bb4ee6a4SAndroid Build Coastguard Worker            "Clippy windows crosvm",
40*bb4ee6a4SAndroid Build Coastguard Worker            [
41*bb4ee6a4SAndroid Build Coastguard Worker                "vpython3",
42*bb4ee6a4SAndroid Build Coastguard Worker                "./tools/clippy",
43*bb4ee6a4SAndroid Build Coastguard Worker            ],
44*bb4ee6a4SAndroid Build Coastguard Worker        )
45*bb4ee6a4SAndroid Build Coastguard Worker
46*bb4ee6a4SAndroid Build Coastguard Worker
47*bb4ee6a4SAndroid Build Coastguard Workerdef GenTests(api):
48*bb4ee6a4SAndroid Build Coastguard Worker    filter_steps = Filter("Build crosvm tests", "Run crosvm tests")
49*bb4ee6a4SAndroid Build Coastguard Worker    yield (
50*bb4ee6a4SAndroid Build Coastguard Worker        api.test(
51*bb4ee6a4SAndroid Build Coastguard Worker            "build",
52*bb4ee6a4SAndroid Build Coastguard Worker            api.buildbucket.ci_build(project="crosvm/crosvm"),
53*bb4ee6a4SAndroid Build Coastguard Worker        )
54*bb4ee6a4SAndroid Build Coastguard Worker        + api.post_process(filter_steps)
55*bb4ee6a4SAndroid Build Coastguard Worker    )
56