blob: 80644406eab2ba75e7b71576de5a84a633e2d178 [file] [log] [blame]
// Copyright 2019 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.
syntax = "proto3";
package chromiumos;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromiumos";
import "chromiumos/builder_config.proto";
import "chromiumos/common.proto";
// The input proto for invocations of the Build Planner.
message GenerateBuildPlanRequest {
// 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
repeated ProtoBytes gerrit_changes = 1;
// The manifest-internal snapshot commit hash that's being used for the current build.
// Note that manifest_commit will be soon replaced with gitiles_commit below.
string manifest_commit = 2;
// Serialized buildbucket GitilesCommit, representing the manifest or
// manifest-internal commit to which the build is synced.
ProtoBytes gitiles_commit = 4;
// 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 Chrome OS 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;
}