Distributed parallel build system
First Claim
1. A computer-implemented method to manage parallel builds in a networked system, comprising:
- identifying one or more software components in a software project, wherein each software component includes an executable binary file;
detecting a plurality of build servers;
determining a build configuration for each software component, wherein the build configuration includes a mapping from each software component to a selected one or more of the plurality of build servers, the one or more of the plurality of build servers that are selected on at least one optimizing factor including the network capability of the one or more of the plurality of build servers; and
building each software component using the mapped one or more build servers in the corresponding build configuration, wherein the building includes compiling one or more source files associated with each software component to one or more object files by distributing the one or more source files to one or more compilation machines,linking the one or more object files associated with each software component by distributing the one or more object files to one or more linking machines, packaging each software component, andtransferring each packaged software component to one of a development area or a release area.
1 Assignment
0 Petitions
Accused Products
Abstract
This document describes, among other things, systems and methods for managing distributed parallel builds. A computer-implemented method to manage parallel builds, comprises identifying one or more software components in a software project, wherein each software component includes an executable binary file; determining a build configuration for each software component, wherein the build configuration includes a mapping from each software component to one or more build servers; and building each software component using the mapped one or more build servers in the corresponding build configuration, wherein the building includes compiling one or more source files associated with each software component to one or more object files, by distributing the one or more source files to one or more compilation machines.
-
Citations
16 Claims
-
1. A computer-implemented method to manage parallel builds in a networked system, comprising:
-
identifying one or more software components in a software project, wherein each software component includes an executable binary file; detecting a plurality of build servers; determining a build configuration for each software component, wherein the build configuration includes a mapping from each software component to a selected one or more of the plurality of build servers, the one or more of the plurality of build servers that are selected on at least one optimizing factor including the network capability of the one or more of the plurality of build servers; and building each software component using the mapped one or more build servers in the corresponding build configuration, wherein the building includes compiling one or more source files associated with each software component to one or more object files by distributing the one or more source files to one or more compilation machines, linking the one or more object files associated with each software component by distributing the one or more object files to one or more linking machines, packaging each software component, and transferring each packaged software component to one of a development area or a release area. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A device comprising:
-
computer storage and one or more electronic processors configured for storing and executing software, including a user-interface module; a queuing module, coupled to the user-interface module, the queuing module configured to maintain a build queue, the build queue including one or more build requests, each build request including one or more software components each having one or more files; and a file transfer module, coupled to the queuing module, configured to transfer one or more files associated with one or more software components associated with a build request in the build queue to one or more of a plurality of build servers, the one or more of the plurality of the build servers that are selected based on the network capability of the plurality of build servers, according to a build configuration, wherein the build configuration includes a mapping from each software component to the one or more of a plurality of build servers; a compile module configured to compile source files to one or more object files; a link module configured to link the one or more object files within each software component; and a package module to package each software component, wherein the file transfer module is further configured to transfer each software component to one of a development area or a release area. - View Dependent Claims (8, 9, 10)
-
-
11. A system for managing parallel builds in a networked system, comprising:
-
means for organizing a software project into one or more software components, wherein each software component is associated with an executable binary file; means for detecting a plurality of build servers; means for determining a build configuration for each software component, wherein the build configuration includes a mapping from each software component to one or more of the plurality build servers selected on the basis of the network capability of the plurality of build servers; and means for compiling each software component using the build configuration means for linking one or more object files within each software component; means for packaging each software component; and means for transferring each packaged software component to one of a development area or a release area.
-
-
12. A non-transitory computer-readable medium including instructions that, when performed by a computer, cause the computer to:
-
identify one or more software components in a software project, wherein each software component includes an executable binary file; detect a plurality of build servers; determine a build configuration for each software component, wherein the build configuration includes a mapping from each software component to a selected one or more of the plurality of build servers, that are selected on at least one optimizing factor including the network capability of the plurality of build severs; compile each software component using the mapped one or more build servers in the corresponding build configuration link one or more object files in each software component package each software component; and transfer each compiled and linked software component to one of a development area or a release area. - View Dependent Claims (13, 14, 15, 16)
-
Specification