Get desktop application:
View/edit binary Protocol Buffers messages
A service for publishing BuildEvents. BuildEvents are generated by Build Systems to record actions taken during a Build. Events occur in streams, are identified by a StreamId, and ordered by sequence number in a stream. A Build may contain several streams of BuildEvents, depending on the systems that are involved in the Build. Some BuildEvents are used to declare the beginning and end of major portions of a Build; these are called LifecycleEvents, and are used (for example) to indicate the beginning or end of a Build, and the beginning or end of an Invocation attempt (there can be more than 1 Invocation in a Build if, for example, a failure occurs somewhere and it needs to be retried). Other, build-tool events represent actions taken by the Build tool, such as target objects produced via compilation, tests run, et cetera. There could be more than one build tool stream for an invocation attempt of a build.
Publish a build event stating the new state of a build (typically from the build queue). The BuildEnqueued event must be published before all other events for the same build ID. The backend will persist the event and deliver it to registered frontend jobs immediately without batching. The commit status of the request is reported by the RPC's util_status() function. The error code is the canonical error code defined in //util/task/codes.proto.
Publish build tool events belonging to the same stream to a backend job using bidirectional streaming.
States which event has been committed. Any failure to commit will cause RPC errors, hence not recorded by this proto.
The stream that contains this event.
The sequence number of this event that has been committed.
An event representing some state change that occurred in the build. This message does not include field for uniquely identifying an event.
Used in:
This should be precisely the time when this event happened, and not when the event proto was created or sent.
////////////////////////////////////////////////////////////////////////// Events that indicate a state change of a build request in the build queue.
An invocation attempt has started.
An invocation attempt has finished.
The build is enqueued.
The build has finished. Set when the build is terminated.
An event containing printed text.
Indicates the end of a build event stream (with the same StreamId) from a build component executing the requested build task. *** This field does not indicate the WatchBuild RPC is finished. ***
Structured build event generated by Bazel about its execution progress.
An event that contains supplemental tool-specific information about build execution.
An event that contains supplemental tool-specific information about source fetching.
Notification of the end of a build event stream published by a build component other than CONTROLLER (See StreamId.BuildComponents).
Used in:
How the event stream finished.
How did the event stream finish.
Used in:
Unknown or unspecified; callers should never set this value.
Set by the event publisher to indicate a build event stream is finished.
Set by the WatchBuild RPC server when the publisher of a build event stream stops publishing events without publishing a BuildComponentStreamFinished event whose type equals FINISHED.
Notification that the build request is enqueued.
Used in:
Additional details about the Build.
Notification that the build request has finished, and no further invocations will occur. Note that this applies to the entire Build. Individual invocations trigger InvocationFinished when they finish.
Used in:
Final status of the build.
Additional details about the Build.
Textual output written to standard output or standard error.
Used in:
The output stream type.
The output stream content.
Regular UTF-8 output; normal text.
Used if the output is not UTF-8 text (for example, a binary proto).
Notification that an invocation attempt has finished.
Used in:
Final status of the invocation.
Arbitrary details about the invocation attempt.
Notification that the build system has attempted to run the build tool.
Used in:
The number of the invocation attempt, starting at 1 and increasing by 1 for each new attempt. Can be used to determine if there is a later invocation attempt replacing the current one a client is processing.
Arbitrary details about the invocation attempt.
Status used for both invocation attempt and overall build completion.
Used in:
,The end result.
Final invocation ID of the build, if there was one. This field is only set on a status in BuildFinished event.
Build tool exit code. Integer value returned by the executed build tool. Might not be available in some cases, e.g., a build timeout.
Human-readable error message. Do not use for programmatic purposes.
Fine-grained diagnostic information to complement the status.
The end result of the Build.
Used in:
Unspecified or unknown.
Build was successful and tests (if requested) all pass.
Build error and/or test failure.
Unable to obtain a result due to input provided by the user.
Unable to obtain a result due to a failure within the build system.
Build required too many resources, such as build tool RAM.
An invocation attempt time exceeded its deadline.
Build request time exceeded the request_deadline
The build was cancelled by a call to CancelBuild.
The type of console output stream.
Used in:
Unspecified or unknown.
Normal output stream.
Error output stream.
Build event with contextual information about the stream it belongs to and its position in that stream.
Used in:
,Which build event stream this event belongs to.
The position of this event in the stream. The sequence numbers for a build event stream should be a sequence of consecutive natural numbers starting from one. (1, 2, 3, ...)
The actual event.
Streaming request message for PublishBuildToolEventStream.
Used as request type in: PublishBuildEvent.PublishBuildToolEventStream
Used as field type in:
Required. The build event with position info. New publishing clients should use this field rather than the 3 above.
The keywords to be attached to the notification which notifies the start of a new build event stream. BES only reads this field when sequence_number or ordered_build_event.sequence_number is 1 in this message. If this field is empty, BES will not publish notification messages for this stream.
Required. The project this build is associated with. This should match the project used for the initial call to PublishLifecycleEvent (containing a BuildEnqueued message).
Whether to require a previously received matching InvocationAttemptStarted event before continuing event processing for the event in the current request. BES only performs this check for events with sequence_number 1 i.e. the first event in the stream.
Publishes 'lifecycle events' that update the high-level state of a build: - BuildEnqueued: When a build is scheduled. - InvocationAttemptStarted: When work for a build starts; there can be multiple invocations for a build (e.g. retries). - InvocationAttemptCompleted: When work for a build finishes. - BuildFinished: When a build is finished.
Used as request type in: PublishBuildEvent.PublishLifecycleEvent
Used as field type in:
The interactivity of this build.
Required. The lifecycle build event. If this is a build tool event, the RPC will fail with INVALID_REQUEST.
If the next event for this build or invocation (depending on the event type) hasn't been published after this duration from when {build_event} is written to BES, consider this stream expired. If this field is not set, BES backend will use its own default value.
Additional information about a build request. These are define by the event publishers, and the Build Event Service does not validate or interpret them. They are used while notifying internal systems of new builds and invocations if the OrderedBuildEvent.event type is BuildEnqueued/InvocationAttemptStarted.
Required. The project this build is associated with. This should match the project used for the initial call to PublishLifecycleEvent (containing a BuildEnqueued message).
Whether to require a previously received matching parent lifecycle event for the current request's event before continuing processing. - InvocationAttemptStarted and BuildFinished events require a BuildEnqueued parent event. - InvocationAttemptFinished events require an InvocationAttemptStarted parent event.
The service level of the build request. Backends only uses this value when the BuildEnqueued event is published to determine what level of service this build should receive.
Used in:
Non-interactive builds can tolerate longer event latencies. This is the default ServiceLevel if callers do not specify one.
The events of an interactive build should be delivered with low latency.
Unique identifier for a build event stream.
Used in:
,The id of a Build message.
The unique invocation ID within this build. It should be the same as {invocation} (below) during the migration.
The component that emitted this event.
Which build component generates this event stream. Each build component may generate one event stream.
Used in:
Unknown or unspecified; callers should never set this value.
A component that coordinates builds.
A component that runs executables needed to complete a build.
A component that builds something.