• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2021 The ChromiumOS Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5syntax = "proto3";
6
7package chromiumos.build.api;
8
9option go_package = "go.chromium.org/chromiumos/config/go/build/api";
10
11import "chromiumos/build/api/portage.proto";
12
13// Defines config used to generate Chrome OS system image builds.
14message SystemImage {
15  ImageId       id       = 1; // universally unique ID representing the build
16  BuildMetadata metadata = 2; // metadata about the system image
17
18  message ImageId {
19      string value = 1;
20  }
21
22  // Defines build target config required to generate a Chrome OS system image.
23  // See:
24  // https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_guide.md#Build-a-disk-image-for-your-board
25  message BuildTarget {
26    Portage.BuildTarget portage_build_target = 1;
27  }
28
29  message BuildMetadata {
30    // Information passed to portage as part of the build.
31    BuildTarget              build_target    = 1;
32    PackageSummary           package_summary = 2;
33    repeated Portage.Package packages        = 3;
34
35    // Provides a summary of common key packages used in the build.
36    message PackageSummary {
37      Arc       arc       = 1;
38      AshChrome chrome    = 2;
39      Chipset   chipset   = 3;
40      Kernel    kernel    = 4;
41      Toolchain toolchain = 5;
42    }
43
44    // package-specific meta data for VIPs (very important packages).  Wrapped
45    // in their own message to let us extend them in the future.
46
47    message Arc {
48      string version = 1;
49      string branch  = 2;
50    }
51
52    message AshChrome {
53      string version = 1;
54    }
55
56    message Chipset {
57      // Name of the chipset overlay used (e.g. src/overlays/chipset-[VALUE]
58      // Chipsets are SoC family based, so this allows overlays and kernels
59      // to be correlated on a per-soc-family basis.
60      string overlay = 1;
61    }
62
63    message Kernel {
64      string version = 1;
65    }
66
67    message Toolchain {
68      string version = 1;
69    }
70  }
71
72  // Used to serialize build metadata reports to proto[json|text|binary]
73  message BuildMetadataList {
74    repeated BuildMetadata values = 1;
75  }
76}
77