blob: 2d0c39a367bb80c077b098a53b19c27d1aa2a543 [file] [log] [blame]
// Copyright 2021 The LUCI Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package buildbucket.v2;
import "google/protobuf/struct.proto";
import "go.chromium.org/luci/buildbucket/proto/common.proto";
import "go.chromium.org/luci/buildbucket/proto/field_option.proto";
option go_package = "go.chromium.org/luci/buildbucket/proto;buildbucketpb";
// A backend task.
// Next id: 9.
message Task {
TaskID id = 1;
// (optional) Human-clickable link to the status page for this task.
// This should be populated as part of the Task response in RunTaskResponse.
// Any update to this via the Task field in BuildTaskUpdate will override the
// existing link that was provided in RunTaskResponse.
string link = 2;
// The backend's status for handling this task.
Status status = 3;
// The 'status_details' around handling this task.
StatusDetails status_details = 4;
// Deprecated. Use summary_markdown instead.
string summary_html = 5;
// Additional backend-specific details about the task.
//
// This could be used to indicate things like named-cache status, task
// startup/end time, etc.
//
// This is limited to 10KB (binary PB + gzip(5))
//
// This should be populated as part of the Task response in RunTaskResponse.
// Any update to this via the Task field in BuildTaskUpdate will override the
// existing details that were provided in RunTaskResponse.
google.protobuf.Struct details = 6;
// A monotonically increasing integer set by the backend to track
// which task is the most up to date when calling UpdateBuildTask.
// When the build is first created, this will be set to 0.
// When RunTask is called and returns a task, this should not be 0 or nil.
// Each UpdateBuildTask call will check this to ensure the latest task is
// being stored in datastore.
int64 update_id = 7;
// Human-readable commentary around the handling of this task.
string summary_markdown = 8;
}
// A unique identifier for tasks.
message TaskID {
// Target backend. e.g. "swarming://chromium-swarm".
string target = 1 [
(buildbucket.v2.create_build_field_option).field_behavior = REQUIRED
];
// An ID unique to the target used to identify this task. e.g. Swarming task
// ID.
string id = 2;
}
// A message sent by task backends as part of the payload to a
// pubsub topic corresponding with that backend. Buildbucket handles these
// pubsub messages with the UpdateBuildTask cloud task.
// Backends must use this proto when sending pubsub updates to buildbucket.
//
// NOTE: If the task has not been registered with buildbucket yet (by means of
// RunTask returning or StartBuild doing an initial associaton of the task to
// the build), then the message will be dropped and lost forever.
// Use with caution.
message BuildTaskUpdate {
// A build ID.
string build_id = 1;
// Task
Task task = 2;
}