// Copyright 2020 The Chromium OS Authors. All rights reserved.
// 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";

// ***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;
}

// Enum for various type of builders
enum BuilderType {
  UNKNOWN_BUILDER_TYPE = 0;
  RELEASE = 1;
}

enum Architecture {
  UNKNOWN = 0;
  X86_INTERNAL = 1;
  ARM_INTERNAL = 2;
}

// 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;
}

// 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;
}

// Message to represent a board in build configuration
message BuildBoard {
  string name = 1;
  repeated Config configs = 2;
}

// 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;
}

