| // Copyright 2019 Bloomberg Finance LP |
| // |
| // 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. |
| // |
| // Authors |
| // Raoul Hidalgo Charman <raoul.hidalgo.charman@gmail.com> |
| |
| syntax = "proto3"; |
| |
| package buildstream.v2; |
| |
| import "build/bazel/remote/execution/v2/remote_execution.proto"; |
| import "google/api/annotations.proto"; |
| |
| message Artifact { |
| // This version number must always be present and can be used to |
| // further indicate presence or absence of parts of the proto at a |
| // later date. It only needs incrementing if a change to what is |
| // *mandatory* changes. |
| int32 version = 1; |
| // Core metadata |
| bool build_success = 2; |
| string build_error = 3; // optional |
| string build_error_details = 4; |
| string strong_key = 5; |
| string weak_key = 6; |
| bool was_workspaced = 7; |
| // digest of a Directory |
| build.bazel.remote.execution.v2.Digest files = 8; |
| |
| // Information about the build dependencies |
| message Dependency { |
| string project_name = 1; |
| string element_name = 2; |
| string cache_key = 3; |
| bool was_workspaced = 4; |
| }; |
| repeated Dependency build_deps = 9; |
| |
| // The public data is a yaml file which is stored into the CAS |
| // Digest is of a directory |
| build.bazel.remote.execution.v2.Digest public_data = 10; |
| |
| // The logs are stored in the CAS |
| message LogFile { |
| string name = 1; |
| // digest of a file |
| build.bazel.remote.execution.v2.Digest digest = 2; |
| }; |
| repeated LogFile logs = 11; // Zero or more log files here |
| |
| // digest of a directory |
| build.bazel.remote.execution.v2.Digest buildtree = 12; // optional |
| |
| // digest of a directory |
| build.bazel.remote.execution.v2.Digest sources = 13; // optional |
| |
| // The low/high diversity meta fields are digests of YAML files |
| // in which we store detatched metadata related to the artifact. |
| // |
| // metadata found in the low diversity file is expected to be |
| // frequently reused in the context of a given BuildStream project, |
| // ergo there is a very high chance that the entire content of the |
| // file can be shared across many artifacts. |
| // |
| // metadata found in the high diversity file is expected to diverge |
| // from one artifact to another. This still consists of metadata |
| // which does not directly affect an artifact's cache key, and as |
| // such cannot be stored directly in the proto itself. |
| // |
| build.bazel.remote.execution.v2.Digest low_diversity_meta = 14; |
| build.bazel.remote.execution.v2.Digest high_diversity_meta = 15; |
| |
| // Strict key is a later addition to the core metadata |
| string strict_key = 16; |
| |
| // digest of a directory |
| build.bazel.remote.execution.v2.Digest buildroot = 17; // optional |
| } |