1// Copyright 2017 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto2";
16
17package android.test.lab;
18
19// Type of a command.
20enum BuildStorageType {
21  UNKNOWN_BUILD_STORAGE_TYPE = 0;
22  // For Partner Android Build (PAB)
23  BUILD_STORAGE_TYPE_PAB = 1;
24  // For a Google Cloud Storage (GCS) bucket
25  BUILD_STORAGE_TYPE_GCS = 2;
26}
27
28// To specify the whole test execution schedule of a manifest branch.
29message ScheduleConfigMessage {
30  // Manifest branch name.
31  optional bytes manifest_branch = 1;
32
33  // PAB account ID.
34  optional bytes pab_account_id = 2;
35
36  // Device image storage type (e.g., PAB or GCS)
37  optional BuildStorageType build_storage_type = 3 [default = BUILD_STORAGE_TYPE_PAB];
38
39  // For the IP address.
40  repeated BuildScheduleConfigMessage build_target = 11;
41}
42
43message BuildScheduleConfigMessage {
44  // build target name (e.g., aosp_taimen-userdebug)
45  optional bytes name = 1;
46
47  // whether to use signed build.
48  optional bool require_signed_device_build = 2;
49
50  // whether the build target has bootloader.img
51  optional bool has_bootloader_img = 3 [default = true];
52
53  // whether the build target has radio.img
54  optional bool has_radio_img = 4 [default = true];
55
56  repeated TestScheduleConfigMessage test_schedule = 11;
57}
58
59message TestScheduleConfigMessage {
60  // Test name (e.g., test_group/test_plan)
61  optional bytes test_name = 1;
62
63  // Scheduling period in minutes
64  optional int32 period = 2;
65
66  // Priority such as high, low, or medium
67  optional bytes priority = 3;
68
69  // such as <lab>/<device type>
70  repeated bytes device = 4;
71
72  // number of shards (-1 for auto selection?)
73  optional int32 shards = 5;
74
75  // required host-side equipment.
76  repeated bytes required_host_equipment = 6;
77
78  // required device-side equipment such as a SIM card.
79  repeated bytes required_device_equipment = 7;
80
81  optional bytes param = 11;
82
83  // GSI storage type (e.g., PAB or GCS)
84  optional BuildStorageType gsi_storage_type = 24 [default = BUILD_STORAGE_TYPE_PAB];
85
86  // if GSI (General System Image) is used, GSI manifest branch name.
87  optional bytes gsi_branch = 21;
88
89  // if GSI (General System Image) is used, GSI build target name.
90  optional bytes gsi_build_target = 22;
91
92  // if GSI (General System Image) is used, GSI PAB account ID.
93  optional bytes gsi_pab_account_id = 23;
94
95  // if GSI (General System Image) is used, the version of a vendor.img
96  // to use GSI with (e.g., 8.1.0).
97  optional bytes gsi_vendor_version = 25;
98
99  // Test package's storage type (e.g., PAB or GCS)
100  optional BuildStorageType test_storage_type = 34 [default = BUILD_STORAGE_TYPE_PAB];
101
102  // Test package's manifest branch name.
103  optional bytes test_branch = 31;
104
105  // Test package's build target name.
106  optional bytes test_build_target = 32;
107
108  // PAB account ID for test package.
109  optional bytes test_pab_account_id = 33;
110
111  // number of retry count.
112  optional int32 retry_count = 41;
113
114  // whether to disable this schedule.
115  optional bool disable = 51 [default = false];
116
117  // Base GCS url for the repack command.
118  optional bytes image_package_repo_base = 61;
119
120  // the GCS url where test results are uploaded
121  repeated bytes report_bucket = 71;
122
123  // the ID of the spreadsheet where test results are uploaded
124  repeated bytes report_spreadsheet_id = 72;
125
126  // the GCS url where the latest test result is uploaded
127  repeated bytes report_persistent_url = 73;
128
129  // the GCS url where the reference result is.
130  repeated bytes report_reference_url = 74;
131}
132