summaryrefslogtreecommitdiff
path: root/buildstream/_protos/buildstream/v2/artifact.proto
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/_protos/buildstream/v2/artifact.proto')
-rw-r--r--buildstream/_protos/buildstream/v2/artifact.proto88
1 files changed, 88 insertions, 0 deletions
diff --git a/buildstream/_protos/buildstream/v2/artifact.proto b/buildstream/_protos/buildstream/v2/artifact.proto
new file mode 100644
index 000000000..56ddbca6b
--- /dev/null
+++ b/buildstream/_protos/buildstream/v2/artifact.proto
@@ -0,0 +1,88 @@
+// 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";
+
+service ArtifactService {
+ // Retrieves an Artifact message
+ //
+ // Errors:
+ // * `NOT_FOUND`: Artifact not found on server
+ rpc GetArtifact(GetArtifactRequest) returns (Artifact) {}
+
+ // Sets an Artifact message
+ //
+ // Errors:
+ // * `FAILED_PRECONDITION`: Files specified in upload aren't present in CAS
+ rpc UpdateArtifact(UpdateArtifactRequest) returns (Artifact) {}
+}
+
+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 element_name = 1;
+ string cache_key = 2;
+ bool was_workspaced = 3;
+ };
+ 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
+}
+
+message GetArtifactRequest {
+ string instance_name = 1;
+ string cache_key = 2;
+}
+
+message UpdateArtifactRequest {
+ string instance_name = 1;
+ string cache_key = 2;
+ Artifact artifact = 3;
+}