IP Library Granted Patent US 12688015
Granted Patent B2
US 12688015 · App. 18/403,940 · Granted Jul 21, 2026

Remote orchestrator for software build and test tool

Inventors: Jason Vrablik (Monroe, WA); Eben Freeman (Mammoth Lakes, CA); Mahmood Miah (Seattle, WA); Jason Chan (Andover, MA)
Assignee: GM Cruise Holdings LLC
G06F8/35G06F8/10G06F9/547G06F11/3636
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12688015
App. No.
18/403,940
Granted
Jul 21, 2026
Kind
B2
Abstract

A remote build orchestrator for building and testing a software program is described. The remote build orchestrator includes a generator service for generating a build graph from a definition of the software program input to the remote build orchestrator. The build graph includes a plurality of actions, wherein the actions are defined by inputs, outputs, and commands, and wherein outputs of actions that are dependent on other actions for inputs are represented in the build graph by placeholders. The remote build orchestrator also includes an unwinder service for receiving the build graph from the generator service and processing the build graph into a series of requests for execution of the actions. The remote build orchestrator further includes a remote build execution service for executing the actions in response to the received requests and returning results of the executing to the unwinder service.

Claims (39)

1 . A remote build orchestrator system for building and

testing a software program, the remote build orchestrator system comprising:

a generator service configured to generate, from a definition of the software program input to the remote build orchestrator system, a Merkle-based build graph comprising a plurality of actions, wherein the actions are defined by inputs, outputs, and commands, and

wherein outputs of actions that are dependent on other actions for inputs are represented in the Merkle-based build graph by placeholders,

wherein each placeholder comprises a computationally unique signature based on all of the inputs that would create a file represented by the placeholder;

an unwinder service configured to:

receive the Merkle-based build graph from the generator service; and

process the Merkle-based build graph in topological order into a series of remote execution application programming interface (API) requests for execution of the actions by a remote build execution service; and

the remote build execution service configured to:

execute the actions in response to the remote execution API requests; and

return results of the executing to the unwinder service,

wherein the unwinder service is further configured to use the returned results to replace the placeholders with actual output data resulting from the executing, and rewrite subsequent actions for execution.

2 . The remote build orchestrator system of claim 1 , wherein the unwinder service comprises a plurality of unwinder pods.

3 . The remote build orchestrator system of claim 2 , wherein the unwinder service comprises a ring hash load balancer for load balancing the unwinder pods.

4 . The remote build orchestrator system of claim 1 , wherein the signatures uniquely and deterministically represent dependent actions.

5 . The remote build orchestrator system of claim 1 , wherein each of the generator service, the unwinder service, and the remote build execution service are executed on separate machines.

6 . The remote build orchestrator system of claim 1 , wherein the Merkle-based build graph is provided to the unwinder service via a network connection.

7 . The remote build orchestrator system of claim 1 , wherein subsequent to completion of execution of all of the actions by the remote build execution service, the remote build orchestrator generates an aggregate pass-fail result based on the execution of all of the actions.

8 . A computer-implemented method for building and testing a software program, the computer-implemented method comprising:

generating, from a definition of the software program input to a remote build orchestrator system, a Merkle-based build graph comprising a plurality of actions,

wherein the actions are defined by inputs, outputs, and commands, and wherein outputs of actions that are dependent on other actions for inputs are represented in the Merkle-based build graph by placeholders,

wherein each placeholder comprises a computationally unique signature based on all of the inputs that would create a file represented by the placeholder;

processing the Merkle-based build graph in topological order into a series of remote execution application programming interface (API) requests for execution of the actions;

executing the actions in response to the remote execution API requests to produce results; and

using the results to replace the placeholders with actual output data of the executing, and rewrite subsequent actions for execution,

wherein the generating, the processing, and the executing are each performed by a different machine entity.

9 . The computer-implemented method of claim 8 , further comprising performing ring hash load balancing in connection with the processing.

10 . The computer-implemented method of claim 8 , wherein the signatures uniquely and deterministically represent dependent actions.

11 . The computer-implemented method of claim 8 , further comprising, subsequent to completion of execution of all of the actions, returning an aggregate pass-fail result based on the execution of all of the actions.

12 . One or more non-transitory computer-readable storage media comprising instructions for execution that, when executed by a processor, cause the processor to perform operations, the operations comprising:

generating, from a definition of a software program input to a remote build orchestrator system, a Merkle-based build graph comprising a plurality of actions,

wherein the actions are defined by inputs, outputs, and commands, and wherein outputs of actions that are dependent on other actions for inputs are represented in the Merkle-based build graph by placeholders,

wherein each placeholder comprises a computationally unique signature based on all of the inputs that would create a file represented by the placeholder;

processing the Merkle-based build graph in topological order into a series of remote execution application programming interface (API) requests for execution of the actions;

executing the actions in response to the remote execution API requests to produce results;

subsequent to completion of execution of all of the actions, returning an aggregate pass-fail result based on the execution of all of the actions;

using the results to replace the placeholders with actual data of executing; and

re-executing the actions comprising the placeholders subsequent to the replacing.

13 . The one or more non-transitory computer-readable storage media of claim 12 , wherein the signatures uniquely and deterministically represent dependent actions.