Dynamic CI/CD Pipeline Selection via Change Level Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing CI/CD systems face challenges in effectively selecting the appropriate pipeline for testing changes due to the complexity of projects, which often requires a static list of pipelines that cannot cover all possible changes, leading to inefficient maintenance and potential missed testing scenarios.
Innovation Solution
The implementation of a dynamic CI/CD pipeline mapping system that generates a data structure reflecting the execution configuration of each pipeline, allowing for the selection of the most suitable pipeline based on the level of change, such as file, block, or line level changes, and notifies users if additional pipelines are needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a static list of CI/CD pipelines is used to cover all possible changes, then completeness of testing coverage is improved, but device complexity and maintenance effort increase significantly
Solution Approach 1:
The patent transforms the static pipeline list into a dynamic system that automatically generates and updates pipeline configurations based on detected code changes. The system analyzes change levels (file, block, line) and dynamically determines which pipelines to execute, eliminating the need for manual maintenance of comprehensive static pipeline lists while ensuring appropriate testing coverage.
Solution Approach 2:
The system introduces change level parameters (file level, block level, line level) to characterize code modifications. By monitoring these parameters and using them to select pipelines, the system adapts pipeline execution to the specific nature of changes without requiring a fixed comprehensive pipeline list, thus reducing complexity while maintaining reliability.
2Reliability
If a static list of CI/CD pipelines is maintained to cover all scenarios, then all possible changes can be tested, but ease of operation and maintenance deteriorate
Solution Approach 1:
The system implements self-service by automatically detecting code changes, analyzing their scope and level, and autonomously determining which CI/CD pipelines to execute. This eliminates the need for operators to manually maintain and update comprehensive pipeline lists, significantly reducing maintenance effort while ensuring appropriate testing coverage through automated decision-making.
Solution Approach 2:
The system incorporates feedback mechanisms that monitor code changes and use this information to dynamically select pipelines. The feedback loop continuously adapts pipeline execution based on detected changes, ensuring comprehensive testing coverage without requiring manual intervention or maintenance of static pipeline configurations.
3Reliability
If comprehensive static pipeline lists are used, then all changes can be tested, but productivity and efficiency decrease due to constant maintenance
Solution Approach 1:
The patent implements dynamic pipeline selection that adapts to the specific characteristics of each code change. By automatically analyzing change levels and dynamically determining pipeline execution, the system eliminates wasteful maintenance activities and focuses computational resources only on relevant pipelines, thereby improving productivity while maintaining testing completeness.
Solution Approach 2:
The system uses change level parameters to optimize pipeline execution efficiency. By monitoring parameters such as file level, block level, and line level changes, the system intelligently selects only the necessary pipelines to execute, avoiding unnecessary testing overhead and improving overall CI/CD process productivity while ensuring comprehensive coverage of actual changes.
Data Source
AI summary
For each continuous integration and continuous delivery/deployment (CI/CD) pipeline of a plurality of CI/CD pipelines created for a project, a data structure reflecting an execution configuration of the respective CI/CD pipeline is created. A request to submit a code change to the project is received. Among the plurality of CI/CD pipelines, at least one CI/CD pipeline having the data structure that matches the code change to the project is identified. The code change to the project on the at least one identified CI/CD pipelines is executed.


