blob: e3b79faa7eb48e6b9f702e8cb20168b9ebb07c5c [file] [log] [blame]
// Copyright 2020 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package chromiumos;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromiumos";
option java_package = "com.google.chrome.crosinfra.proto";
// ***DO NOT IMPORT ANY FIELDS IN THIS PROTO.***
// This file is copied from GoldenEye's original proto.
// google3/java/com/google/chrome/crosbuilds/common/proto/crosbuilds.proto
// CI has no plans to support these messages and want to keep them separate
// from rest of the protos. This whole file is only used to decode config
// from GE.
message Model {
// The board name for this model.
string board_name = 1;
// The name of the model.
string name = 2;
// Defines which test suites should actually be run for a given model
// when the release builder is setting up the hardware tests.
repeated string test_suites = 3;
// Defines whether presubmit hardware tests should be run against a given
// model as part of the commit queue.
bool cq_test_enabled = 4;
// Defines the test pool that will be scheduled against for any HW tests
// executed against the given model.
string release_builder_test_pool = 5;
// The GoldenEye ID for the board of this model.
// If the board does not exist, the field value will be 0.
int64 board_id = 6;
bool is_active = 7;
// Hardware match for the model.
string hwid_match = 8;
// The first milestone that this board will be released to stable
// on.
int32 stable_target_milestone = 9;
// Whether a build for this model is considered experimental only.
bool is_experimental = 10;
}
// Enum for various type of builders
enum BuilderType {
UNKNOWN_BUILDER_TYPE = 0;
RELEASE = 1;
}
enum Architecture {
UNKNOWN = 0;
X86_INTERNAL = 1;
ARM_INTERNAL = 2;
}
enum BuildCadence {
UNKNOWN_CADENCE = 0;
ONCE_PER_WEEK_CADENCE = 1;
THRICE_PER_WEEK_CADENCE = 2;
DAILY_CADENCE = 3;
}
// Configuration required by BuildBot in order to generate a unified release
// builder with the appropriate model specific hardware test coverage.
// For context, see: go/cros-unibuild-hw-test
message ReferenceBoardUnifiedBuildConfig {
// The name of the build that will be created by BuildBot.
string name = 1;
// The name of the reference board this unified build is based upon.
string reference_board_name = 2;
// The instruction set architecture of the reference board.
Architecture arch = 3;
// Whether this is a release build or not.
BuilderType builder = 4;
// Whether this build is considered experimental only.
bool experimental = 5;
// The list of models that are based on the given reference board
// and supported as part of the unified build.
repeated Model models = 6;
// TODO: remove when LegacyRelease is fully deleted.
int32 rubik_target_milestone = 7;
// The first milestone that this board will be released to stable
// on.
int32 stable_target_milestone = 8;
string board_variant = 9;
// The cadence (days/week) we should build this builder at.
BuildCadence build_cadence = 10;
// Whether the build has dedicated lab resources.
bool has_lab_resources = 11;
}
// Message to represent a build config for a given builder
message Config {
BuilderType builder = 1;
bool experimental = 2;
bool leader_board = 3;
string board_group = 4;
Architecture arch = 5;
string board_variant = 6;
// The cadence (days/week) we should build this builder at.
BuildCadence build_cadence = 7;
// Whether the build has dedicated lab resources.
bool has_lab_resources = 8;
}
// Message to represent a board in build configuration
message BuildBoard {
string name = 1;
repeated Config configs = 2;
// TODO: remove when LegacyRelease is fully deleted.
int32 rubik_target_milestone = 3;
// The first milestone that this board will be released to stable
// on.
int32 stable_target_milestone = 4;
}
// Message to represent a build configuration.
// The JSON file from GE is this proto.
message GEConfig {
string metadata_version = 1;
repeated BuildBoard boards = 2;
bool release_branch = 3;
repeated ReferenceBoardUnifiedBuildConfig reference_board_unified_builds = 4;
}