blob: e3d49af33dabe40a48b5eac24288984a14e7f088 [file] [log] [blame]
// Copyright 2019 The ChromiumOS Authors
// 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";
option java_package = "com.google.chrome.crosinfra.proto";
import "chromiumos/builder_config.proto";
import "chromiumos/common.proto";
// The input proto for invocations of the Build Planner.
// Next: 6
message GenerateBuildPlanRequest {
message Path { string path = 1; }
// A list of source paths affected by the changes in the CQ run.
//
// If provided, the gerrit_changes and gitiles_commit fields are ignored.
repeated Path affected_paths = 5;
// Serialized buildbucket GerritChanges, or none if this is a postsubmit run
// or similar.
// Explicit proto import is avoided here to prevent a dependency on the
// luci-go repo. See
// https://chromium.googlesource.com/infra/luci/luci-go/+/master/buildbucket/proto/common.proto
//
// Must be used in conjunction with gitiles_commit.
// If affected_paths is passed in, this field is ignored.
repeated ProtoBytes gerrit_changes = 1;
// Serialized buildbucket GitilesCommit, representing the manifest or
// manifest-internal commit to which the build is synced.
//
// Must be used in conjunction with gerrit_changes.
// If affected_paths is passed in, this field is ignored.
ProtoBytes gitiles_commit = 4;
// DEPRECATED use gitiles_commit instead.
//
// The manifest-internal snapshot commit hash that's being used for the
// current build.
string manifest_commit = 2 [ deprecated = true ];
// The BuilderConfigs to consider for skipping.
repeated BuilderConfig builder_configs = 3;
}
// The output proto for invocations of the Build Planner.
message GenerateBuildPlanResponse {
// BuilderConfigs that cannot be skipped.
repeated BuilderConfig.Id builds_to_run = 1;
// BuilderConfigs that can be skipped due to Portage dependency rules around
// files that are known to never be relevant for ChromeOS builds.
repeated BuilderConfig.Id skip_for_global_build_irrelevance = 2;
// BuilderConfigs that can be skipped because of per-BuilderConfig RunWhen
// rules.
repeated BuilderConfig.Id skip_for_run_when_rules = 3;
}