blob: de6e3cc5f10a81f165bdd581ce2b3a9a7560e2be [file] [log] [blame]
// Copyright 2023 The Fuchsia 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";
import "google/protobuf/struct.proto";
option go_package = "go.fuchsia.dev/infra/cmd/roller-configurator/proto";
message Config {
repeated Roller rollers = 1;
}
message Roller {
// Entity that should be rolled.
oneof to_roll {
GitSubmodule submodule = 1;
CIPDEnsureFile cipd_ensure_file = 2;
JiriProject jiri_project = 3;
JiriPackages jiri_packages = 4;
}
// Cron schedule or time interval at which to trigger the roller.
//
// If left unset, the roller will only be triggerable manually.
//
// For supported syntax see:
// https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/main/lucicfg/doc/README.md#schedules-doc
string schedule = 5;
// Emails to alert when the roller fails.
repeated string notify_emails = 6;
// TODO(olivernewman): owner, justification issue URL
}
// A Git submodule to roll.
message GitSubmodule {
// Path to the submodule.
string path = 1;
}
// A CIPD ensure file containing packages to roll.
message CIPDEnsureFile {
// Path to the CIPD ensure file.
string path = 1;
// CIPD ref to track. Default is "latest".
string ref = 2;
}
// A Jiri project (git repository pinned in a manifest) to roll.
message JiriProject {
// Path to the XML Jiri manifest in which the project is pinned.
string manifest = 1;
// Name of the Jiri project to roll.
string project = 2;
}
// CIPD packages pinned in a Jiri manifest to roll.
message JiriPackages {
// Mapping from Jiri manifest path to list of packages to roll within that
map<string, google.protobuf.ListValue> packages_by_manifest = 1;
// CIPD ref to track. Default is "latest".
string ref = 2;
}