Dynamic Build Pipeline Execution for CI/CD

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current build servers used for continuous integration/continuous deployment (CI/CD) have limitations in functionality and maintainability, as they require hardcoding changes and lack flexibility in implementing pipeline flows and capabilities, making it difficult to manage complex pipelines and expose additional functionality without altering existing implementations.

Innovation Solution

A dynamic build pipeline execution apparatus and method that externalizes pipeline flows, allows higher-level modeling of pipeline flows and capabilities, and provides a plugin to modify and execute pipeline jobs based on user requests, enabling externalization of flow definitions, domain-specific interfaces, and self-service mode for users to define and execute customized pipeline flows with minimal changes to the current implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If build servers use hardcoded pipeline implementations, then functionality is stable and reliable, but flexibility and adaptability to new requirements deteriorate

Engineering Contradiction:
Improvepipeline execution reliabilityVSAvoidpipeline flow adaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the build pipeline into discrete, independently configurable jobs that can be dynamically selected and executed. Each job represents a modular unit of work that can be individually configured, enabled, or disabled through configuration files rather than hardcoded logic. This segmentation allows the system to maintain stable core functionality while adapting to new requirements by simply reconfiguring which jobs are executed and in what order.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic pipeline execution where the flow of jobs is determined at runtime based on configuration parameters rather than being statically hardcoded. The build server can dynamically adjust which jobs are executed, modify execution order, and adapt to different pipeline scenarios by loading different configuration sets. This dynamic approach maintains reliability through consistent execution of configured jobs while providing versatility through flexible reconfiguration.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If build servers implement fixed functionality, then system complexity is reduced and ease of operation is improved, but the ability to expose additional functionality and customize pipelines deteriorates

Engineering Contradiction:
Improvebuild server complexityVSAvoidpipeline functionality extensibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent extracts pipeline flow definitions and job configurations from the core build server implementation into external configuration files. This extraction allows the build server to maintain simple, fixed core functionality while enabling extensive customization through external configuration. Users can define custom pipelines, job sequences, and parameters without modifying the build server code, thus maintaining low system complexity while achieving high functionality extensibility.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a universal build server platform that can handle multiple pipeline scenarios and job types through a single configurable system. Rather than implementing separate fixed functionality for each pipeline type, the build server provides universal job execution capabilities that can be configured to handle diverse pipeline requirements. This universal approach reduces system complexity by avoiding multiple specialized implementations while maintaining versatility through flexible configuration.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Stability of the object's composition

If pipeline flows are hardcoded in build server implementation, then execution consistency is maintained, but ease of maintenance and ability to modify pipelines deteriorates

Engineering Contradiction:
Improvepipeline execution consistencyVSAvoidpipeline configuration maintainability
Core Design Contradiction:
Stability of the object's compositionVSEase of repair

Solution Approach 1:

The patent extracts pipeline flow definitions from hardcoded implementation into external configuration files that can be independently modified. This extraction maintains execution consistency because the build server reliably executes jobs according to the configured definitions, while simultaneously improving maintainability because configuration changes can be made without modifying or recompiling the build server code. The separation allows consistent execution of configured pipelines while enabling easy updates to pipeline logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables self-service pipeline configuration where users can define, modify, and maintain their own pipeline flows through configuration files without requiring changes to the build server implementation. This self-service approach maintains execution consistency through the server's reliable configuration parsing and job execution, while dramatically improving maintainability by allowing direct configuration edits. The system serves itself by automatically loading and executing configured pipelines without requiring implementation modifications.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10452435B2Dynamic build pipeline execution
Publication Date: 2019.10.22 MICRO FOCUS LLC
  • US10452435B2 patent drawing
  • US10452435B2 patent drawing
  • US10452435B2 patent drawing

AI summary

According to an example, dynamic build pipeline execution may include extracting a pipeline flow related to build jobs, and generating, by using the extracted pipeline flow, a pipeline model that includes a plurality of pipelines related to the pipeline flow. Each pipeline of the plurality of pipelines may represent a set of related build jobs, and include an entry point to access the set of related build jobs. Dynamic build pipeline execution may further include generating another model related to the pipeline model to execute a build job of the set of related build jobs for a pipeline of the plurality of pipelines based on a parameter specified for the another model.