go.fuchsia.dev/infra@v0.0.0-20240507153436-9b593402251b/cmd/roller-configurator/proto/rollers_cfg.proto (about)

     1  // Copyright 2023 The Fuchsia Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style license that can be
     3  // found in the LICENSE file.
     4  
     5  syntax = "proto3";
     6  
     7  option go_package = "go.fuchsia.dev/infra/cmd/roller-configurator/proto";
     8  
     9  message Config {
    10    repeated Roller rollers = 1;
    11  
    12    // Path to the manifest that defines the checkout to use when rolling Jiri
    13    // projects/packages, since some Jiri roller operations require access to the
    14    // whole Jiri checkout and not just the repository containing the manifests.
    15    string default_checkout_jiri_manifest = 2;
    16  }
    17  
    18  message Roller {
    19    // Entity that should be rolled.
    20    oneof to_roll {
    21      GitSubmodule submodule = 1;
    22      CIPDEnsureFile cipd_ensure_file = 2;
    23      JiriProject jiri_project = 3;
    24      JiriPackages jiri_packages = 4;
    25    }
    26  
    27    // Cron schedule or time interval at which to trigger the roller. All times
    28    // are UTC.
    29    //
    30    // If left unset, the roller will only be triggerable manually.
    31    //
    32    // For supported syntax see:
    33    // https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/main/lucicfg/doc/README.md#schedules-doc
    34    string schedule = 5;
    35  
    36    // Email of the owner of the roller.
    37    string owner_email = 6;
    38  
    39    // Emails to alert when the roller fails.
    40    repeated string notify_emails = 7;
    41  
    42    // Whether the roller should bypass presubmit checks.
    43    bool force_submit = 8;
    44  
    45    // TODO(olivernewman): owner, justification issue URL, pause status
    46  }
    47  
    48  // A Git submodule to roll.
    49  message GitSubmodule {
    50    // Path to the submodule.
    51    string path = 1;
    52  }
    53  
    54  // A CIPD ensure file containing packages to roll.
    55  message CIPDEnsureFile {
    56    // Path to the CIPD ensure file.
    57    string path = 1;
    58  
    59    // CIPD ref to track. Default is "latest".
    60    string ref = 2;
    61  }
    62  
    63  // A Jiri project (git repository pinned in a manifest) to roll.
    64  message JiriProject {
    65    // Path to the XML Jiri manifest in which the project is pinned.
    66    string manifest = 1;
    67  
    68    // Name of the Jiri project to roll.
    69    string project = 2;
    70  }
    71  
    72  // CIPD packages pinned in a Jiri manifest to roll.
    73  message JiriPackages {
    74    message Manifest {
    75      string path = 1;
    76      repeated string packages = 2;
    77    }
    78  
    79    // Jiri manifests containing packages to roll.
    80    repeated Manifest manifests = 1;
    81  
    82    // CIPD ref to track. Default is "latest".
    83    string ref = 2;
    84  }