blob: 823f757174bf4f365fbeb4b23da56f103392fdb9 [file] [log] [blame]
// Copyright 2021 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";
package recipes.fuchsia.fuchsia_cipd_roller;
import "google/protobuf/struct.proto";
message InputProperties {
// Jiri remote manifest project.
string project = 1;
// Jiri manifest to checkout.
string checkout_manifest = 2;
// Remote manifest repository.
string remote = 3;
// Mapping from manifest path (relative to `project`) to list of packages that
// are pinned in that manifest and should be rolled.
map<string, google.protobuf.ListValue> packages_by_manifest = 4;
// The subset of packages that must have the specified ref.
repeated string packages_requiring_ref = 5;
// Jiri attribute to match debug symbol packages.
string debug_symbol_attribute = 6;
// GCS buckets to upload debug symbols to prior to starting roll.
repeated string preroll_debug_symbol_gcs_buckets = 7;
// GCS buckets to upload debug symbols to after a successful roll. If
// specified, preroll_debug_symbol_gcs_buckets is required.
repeated string postroll_debug_symbol_gcs_buckets = 8;
// The list of lockfiles to update in "${manifest}=${lockfile}" format.
repeated string lockfiles = 9;
// Whether to make roll Change-Id unique to the build.
bool create_unique_change_id = 10;
// Whether to dry-run the auto-roller (CQ+1 and abandon the change).
bool dry_run = 11;
// Whether to force-submit the change, bypassing CQ.
bool force_submit = 12;
// Line of text to divide the commit header and body from the footers.
string commit_divider = 13;
// A CIPD tag prefix common to all $packages where a common version can be
// extracted.
string tag = 14;
// A common CIPD ref to resolve when rolling a set of packages.
string ref = 15;
// The owners responsible for watching this roller (example:
// "username@google.com").
repeated string owners = 16;
// JSON schema for multiplying a test in fuchsia CQ. See
// https://fuchsia.dev/fuchsia-src/development/testing/testing_for_flakiness_in_cq?hl=en#multiply-examples
// Ideally this recipe would just pass through all fields without knowing the
// schema, but then JSON serialization would emit a float value for
// `total_runs`.
message TestMultiplier {
string name = 1;
string os = 2; // Optional.
int32 total_runs = 3; // Optional.
}
// A list of test multipliers to pass into the roll CL's MULTIPLY footer.
repeated TestMultiplier test_multipliers = 17;
// Notify option when pushing roll CL.
string cl_notify_option = 18;
// Extra tryjobs to include, as a mapping from absolute bucket name to list of
// builder names. Example: {"luci.project.bucket": ["builder1", "builder2"]}
map<string, google.protobuf.ListValue> include_tryjobs = 19;
// The max number of days for the packages in a manifest to be older than.
// If set and the roller doesn't find new versions to roll for more than
// max_stale_days, the roller will fail. If max_stale_days == 0, the roller
// will never fail if it has nothing to roll.
int32 max_stale_days = 20;
}