Remote Build Action Merging for Software Compilation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software builds are time-consuming due to the execution of multiple software build actions, often with overlapping actions, and the need to retrieve and compile numerous dependencies, which can take several hours and consume significant computational resources.
Innovation Solution
Implementing a system that merges duplicate software build actions and utilizes a snapshot storage volume and tree caching to cache results of operations on source code, reducing the need for repeated dependency retrieval and computation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple software build actions are executed to ensure complete software compilation and testing, then build reliability is improved, but build time increases significantly
Solution Approach 1:
The patent merges duplicate software build actions by comparing hash values of build actions across multiple build workflows. When identical build actions are detected (same hash value), they are consolidated into a single execution instance that serves multiple workflows, thereby maintaining build reliability while significantly reducing total build time
Solution Approach 2:
The system performs preliminary hashing of build action parameters before execution to identify potential duplicates. By pre-computing hash values and comparing them against existing build actions, the system can determine which build actions can be merged or skipped before actually executing the build processes, reducing overall build time while ensuring necessary builds are performed
2Reliability
If build dependencies are retrieved and compiled for each software build action, then build completeness is improved, but computational resources are consumed excessively
Solution Approach 1:
The patent creates a shared build environment with a common dependency cache that serves multiple software build workflows simultaneously. Build dependencies are retrieved and cached once, then reused across multiple build actions that share the same dependencies, ensuring build completeness while dramatically reducing computational resource consumption
Solution Approach 2:
The system recovers and reuses build dependencies from previous build actions through a caching mechanism. Instead of re-retrieving and re-compiling dependencies for each build action, the system stores dependency artifacts from completed builds and recovers them for subsequent builds that require the same dependencies, reducing computational overhead while maintaining build integrity
3Reliability
If duplicate software build actions are executed separately, then build thoroughness is improved, but build efficiency deteriorates
Solution Approach 1:
The patent implements build action merging by comparing hash values of build actions across concurrent and sequential workflows. When duplicate build actions are identified (matching hash values), they are merged into a single execution that produces results shared by all workflows requiring that build action, thereby maintaining build thoroughness while improving build efficiency
Solution Approach 2:
Instead of executing duplicate build actions, the system creates logical copies of build results through reference sharing. When a build action is executed once, its results are copied and distributed to multiple workflows that would otherwise require separate executions, maintaining build thoroughness while eliminating redundant computational work
Data Source
AI summary
Examples of the present disclosure describe systems and methods for remotebuild software build action-merging. In some examples, a build server receives a first software build action and a second software build action. In examples, it is determined that there is a match between a first hash value of the first software build action and a second hash value of the second software build action. In examples, only the first software build action is run from among the first software build action and the second software build action based on the match to produce a software build action result. In examples, the software build action result is returned as an output of the first software build action and an output of the second software build action.


