| // 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. |
| |
| |
| // WARNING: DO NOT USE these protos outside of suite scheduler. This is |
| // only intended to help the transition to starlark configs. It will |
| // be deprecated once the new replacement is in place. |
| syntax = "proto3"; |
| |
| package testplans; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/testplans"; |
| |
| |
| // Defines a board, its variants and its models. |
| message Board { |
| // Name of the board. Eg: eve. |
| string name = 1; |
| |
| // List of variants assiciated with the board. |
| // This should only be the suffixes. Eg: ['-kernelnext']. |
| repeated string variants = 2; |
| |
| // List of models of the boards to test on. |
| repeated string models = 3; |
| } |
| |
| // Aims to reflect data in lab_config.ini. |
| message LabConfig { |
| // List of board definitions. |
| repeated Board boards = 1; |
| } |
| |
| // Specify a Board and Variant pair. |
| message BoardVariant { |
| string board = 1; |
| string variant = 2; |
| } |
| |
| // Branches that can be targeted. |
| enum Branch { |
| BRANCH_UNSPECIFIED = 0; |
| // Canary Branch or ToT. |
| CANARY = 1; |
| // Dev Branch or ToT-1. |
| DEV = 2; |
| // Beta Branch or ToT-2. |
| BETA = 3; |
| // Stable Branch or ToT-3. |
| STABLE = 4; |
| } |
| |
| // Most fields are the same as suite_scheduler.ini just better organized. |
| // The entries will be used to generate a suite_scheduler.ini in starlark scripts. |
| message SchedulerConfig { |
| // Name of the config. Needs to be unique. |
| string name = 1; |
| |
| // Name of the suite to run. |
| string suite = 2; |
| |
| // Contact emails will one day be paged in case of problems with the config. |
| message Contact { |
| string email = 1; |
| } |
| repeated Contact contacts = 3; |
| |
| // LaunchCriteria specifies when the suite should be launched. |
| message LaunchCriteria { |
| // LaunchProfile defines how often the suite is launched. |
| enum LaunchProfile { |
| UNSPECIFIED = 0; |
| // Run on every new release build of the boards/variants targeted. |
| NEW_BUILD = 1; |
| // Run once a day at the specified hour. Used to be "NIGHTLY". |
| DAILY = 2; |
| // Run once a week at the specified time. |
| WEEKLY = 3; |
| // NOT SUPPORTED. Will be supported in the redesign. |
| CRON_BASED = 4; |
| } |
| LaunchProfile launch_profile = 1; |
| // Hour at which to run. Needs to be specified for nightly and weekly profiles. |
| // Has to be [0, 23]. |
| int32 hour = 2; |
| // Day on which to run. Needs to be specified for weekly profile. |
| // Has to be [0, 6]. |
| int32 day = 3; |
| // NOT SUPPORTED. Cron compatible schedule eg: "* * 1,3,5 * *". |
| string cron_schedule = 4; |
| } |
| LaunchCriteria launch_criteria = 4; |
| |
| // Branches to target. |
| repeated Branch branches = 5; |
| |
| // Set of boards, variants and models to target. |
| message TargetOptions { |
| // Use at the most one among the two fields below. If boards_list is empty, |
| // all boards are targeted. exclude_boards will exclude those boards from |
| // the all boards list. |
| repeated string boards_list = 1; |
| repeated string exclude_boards = 2; |
| |
| // To specify variants, either all variants can be skipped. |
| bool skip_variants = 8; |
| // OR use at the most one among the two fields below. If variants_list is empty, |
| // all variants are targeted. exclude_variants will exclude those variants |
| // from the all variants list. |
| repeated BoardVariant variants_list = 3; |
| repeated BoardVariant exclude_variants = 4; |
| |
| // There's two ways of specifying models. If all of these fields are empty, |
| // all possible models are targeted. |
| // Models to be targeted can be listed explicitly in models_list. |
| repeated string models_list = 5; |
| // OR start with the complete list and exclude some specific models. |
| // any_model only tests the suite on a single model. |
| bool any_model = 6; |
| repeated string exclude_models = 7; |
| } |
| TargetOptions target_options = 6; |
| |
| // Aggregate of options related to DUT pool. |
| message PoolOptions { |
| // Quota Scheduler account to use. |
| string qs_account = 1; |
| // Pool to schedule on. |
| string pool = 2; |
| // Integer priority to assign. Only used by CTS. Quota scheduler takes care of |
| // priorities for the rest. Has to be [20, 255]. |
| int32 priority = 3; |
| } |
| PoolOptions pool_options = 7; |
| |
| // Whether to use firmware from ToT or firmware branch. |
| enum FirmwareBranch { |
| UNSPECIFIED = 0; |
| // ToT branch. |
| CROS = 1; |
| // Firmware branch. |
| FIRMWARE = 2; |
| } |
| FirmwareBranch firmware_ro_build_spec = 8; |
| |
| // Execution related options. |
| message RunOptions { |
| // Whether to retry if the task fails. |
| bool retry = 1; |
| |
| // A list of extra labels/dimensions to attach. |
| // Extra Swarming Dimensions that can be specified. |
| message SwarmingDimension { |
| string key = 1; |
| string value = 2; |
| } |
| repeated SwarmingDimension dimensions = 2; |
| |
| // Timeout of the task. |
| int32 timeout_mins = 3; |
| // If sanity HW test passed, launch this test. Irrespective of the release build's |
| // final status. |
| bool only_sanity_test_required = 4; |
| } |
| RunOptions run_options = 9; |
| } |
| |
| // A proto to contain all the configs. |
| message SchedulerCfg { |
| repeated SchedulerConfig configs = 1; |
| } |