# US 12,001,327 B2 · Execution platform assignments in CI/CD systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,327 B2
- Document ID: US12001327B2
- Status: Granted
- Kind: B2
- Application number: 17/370,305
- Filed: 2021-07-08
- Published: 2023-01-12
- Granted: 2024-06-04
- Earliest claimed: 2021-07-08
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Arie Bregman; Steve Mattar
- Web page: https://patentgrep.com/patent/US12001327B2

## CPC

- G06F 8/70: Software maintenance or management
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06N 20/00: Machine learning
- G06F 11/3672: {Test management}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A method includes receiving, by a processing device, a definition of a continuous integration and continuous delivery/deployment (CI/CD) pipeline, obtaining, by the processing device in view of the definition, a characterization of the CI/CD pipeline indicative of a use case of the CI/CD pipeline, identifying, by the processing device from a heterogeneous pool of execution platforms, a set of candidate execution platforms in view of the characterization, selecting, by the processing device from the set of candidate execution platforms, a subset of execution platforms having a combination of attributes for executing the CI/CD pipeline, and assigning, by the processing device, the subset of execution platforms to the CI/CD pipeline for execution.

## Claims

### Claim 1

A method comprising:
receiving, by a processing device, a definition of a continuous integration and continuous delivery/deployment (CI/CD) pipeline;
identifying, by the processing device based on the definition, a use case of the CI/CD pipeline;
identifying, by the processing device, a heterogeneous pool of execution platforms;
selecting, by the processing device from the heterogeneous pool of execution platforms, a set of execution platforms having a combination of attributes for executing the CI/CD pipeline in accordance with the use case of the CI/CD pipeline; and
assigning, by the processing device, the set of execution platforms to the CI/CD pipeline for execution of the CI/CD pipeline in accordance with the use case of the CI/CD pipeline.

### Claim 2 (depends on 1)

The method of claim 1, wherein the use case comprises at least one of:
application testing or operating system testing.

### Claim 3 (depends on 1)

The method of claim 1, wherein identifying the use case further comprises obtaining a characterization of the CI/CD pipeline indicative of the use case of the CI/CD pipeline, and wherein obtaining the characterization comprises:
expanding the definition to obtain an expanded definition; and
identifying, from the expanded definition, content indicative of the use case of the CI/CD pipeline.

### Claim 4 (depends on 3)

The method of claim 3, wherein the content comprises at least one of: a set of tests that are indicative of the use case, or a set of commands that are indicative of the use case.

### Claim 5 (depends on 1)

The method of claim 1, wherein identifying the use case of the CI/CD pipeline further comprises:
executing the CI/CD pipeline to obtain an execution result; and
performing a profiling analysis in view of the execution result to identify the use case.

### Claim 6 (depends on 1)

The method of claim 1, wherein the combination of attributes comprises a combination of at least one of: a platform type, or a set of resource specifications.

### Claim 7 (depends on 1)

The method of claim 1, wherein identifying the set of execution platforms further comprises identifying a platform type corresponding to the use case of the CI/CD pipeline.

### Claim 8 (depends on 1)

The method of claim 1, wherein the combination of attributes comprises a minimum set of resource specifications for executing the CI/CD pipeline.

### Claim 9 (depends on 1)

The method of claim 1, wherein identifying the use case of the CI/CD pipeline further comprises obtaining, in view of the definition, a characterization of the CI/CD pipeline indicative of a use case of the CI/CD pipeline, and wherein selecting the set of execution platforms further comprises:
providing the characterization as input into a trained model; and
selecting the set of execution platforms based on a corresponding output of the trained model.

### Claim 10

A computing system comprising:
a memory; and
a processing device, operatively coupled to the memory, to perform operations comprising:
receiving a definition of a continuous integration and continuous delivery/deployment (CI/CD) pipeline;
identifying, based on the definition, a use case of the CI/CD pipeline;
identifying from a heterogeneous pool of execution platforms;
selecting, from the heterogeneous pool of execution platforms, a set of execution platforms having a combination of attributes for executing the CI/CD pipeline in accordance with the use case of the CI/CD pipeline; and
assigning the set of execution platforms to the CI/CD pipeline for execution of the CI/CD pipeline in accordance with the use case of the CI/CD pipeline.

### Claim 11 (depends on 10)

The computing system of claim 10, wherein the use case comprises at least one of: application testing or operating system testing.

### Claim 12 (depends on 10)

The computing system of claim 10, wherein identifying the use case further comprises obtaining a characterization of the CI/CD pipeline indicative of the use case of the CI/CD pipeline, and wherein obtaining the characterization comprises:
expanding the definition to obtain an expanded definition; and
identifying, from the expanded definition, content indicative of the use case of the CI/CD pipeline.

### Claim 13 (depends on 12)

The computing system of claim 12, wherein the content comprises at least one of: a set of tests that are indicative of the use case, or a set of commands that are indicative of the use case.

### Claim 14 (depends on 10)

The computing system of claim 10, wherein identifying the use case of the CI/CD pipeline further comprises:
executing the CI/CD pipeline to obtain an execution result; and
performing a profiling analysis in view of the execution result to identify the use case of the CI/CD pipeline.

### Claim 15 (depends on 10)

The computing system of claim 10, wherein the combination of attributes comprises a combination of at least one of: a platform type, or a set of resource specifications.

### Claim 16 (depends on 10)

The computing system of claim 10, wherein identifying the set of execution platforms further comprises identifying a platform type corresponding to the use case of the CI/CD pipeline.

### Claim 17 (depends on 10)

The computing system of claim 10, wherein the combination of attributes comprises a minimum set of resource specifications for executing the CI/CD pipeline.

### Claim 18 (depends on 10)

The computing system of claim 10, identifying the use case of the CI/CD pipeline further comprises obtaining, in view of the definition, a characterization of the CI/CD pipeline indicative of a use case of the CI/CD pipeline, and wherein selecting the set of execution platforms further comprises:
providing the characterization as input into a trained model; and
selecting the set of execution platforms based on a corresponding output of the trained model.

### Claim 19

A computing system comprising:
a memory; and
a processing device, operatively coupled to the memory, to perform operations comprising:
obtaining a combination of attributes for executing a continuous integration and continuous delivery/deployment (CI/CD) pipeline in accordance with a use case of the CI/CD pipeline, wherein the combination of attributes comprises a platform type and a set of resource specifications;
executing the CI/CD pipeline in accordance with the use case of the CI/CD pipeline to obtain an execution result; and
training a model, based on the execution result and the combination of attributes, to select, from a heterogeneous pool of execution platforms, a set of execution platforms to be assigned to the CI/CD pipeline in accordance with the use case of the CI/CD pipeline.

### Claim 20 (depends on 19)

The computing system of claim 19, wherein the operations further comprise:
determining that the model is trained; and
in response to determining that the model is trained, outputting a trained model.
