blob: 0b0d7f4351467a2943a2a60657d8f774e4e0c563 [file] [log] [blame]
// Copyright 2019 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
syntax = "proto3";
package recipe_engine;
import "";
// Legacy result message to model the result of recipe execution.
// TODO(yiwzhang): Delete this message as well as Failure after recipe engine
// is purely on build.proto
message Result {
oneof oneof_result {
// The json result of a recipe. Guaranteed to be a JSON 'object' (e.g.
// "{...}") or omitted.
string json_result = 1;
// The cause of the failure of a recipe.
Failure failure = 2;
message Failure {
// A reason readable by humans. Printed to the UI, and will be seen by users.
string human_reason = 1;
message Dummy {}
// The kitchen code only recognizes two types of failures: Infra failures and
// non-infra failures. It distinguishes them by the existence of the 'failure'
// message below, but doesn't actually care about the contents of this message
// (just the 'human_reason' field above).
// So, we only need to have a dummy message here which is set for 'regular'
// failures, and unset for 'infra' failures.
// This result.proto can't go away quickly enough :). Once the recipe engine
// is purely on build.proto, this result.proto file can go away.
// Kitchen's result parsing code:
Dummy failure = 5;
// The result of a recipe execution.
// Can contain more detailed results about what occurred in the build.
message RawResult {
// Human readable information on what occurred in the build
string summary_markdown = 1;
// If not SUCCESS: summary_markdown has information on an error
// If SUCCESS: summary markdown will be ignored
// TODO(iannucci) Fix this so that `summary_markdown` is always propagated in build.proto mode.
buildbucket.v2.Status status = 2;