Search

US-20260126960-A1 - INTELLIGENT MIGRATION OF CI/CD WORKFLOW SERVER PIPELINES

US20260126960A1US 20260126960 A1US20260126960 A1US 20260126960A1US-20260126960-A1

Abstract

A system that captures runtime data for a pipeline execution, generates an intermediate hierarchical file that includes relationships between the captured data, and converts the intermediate file to alternative format pipeline files, such as YAML files. The present system employs dynamic instrumentation of pipeline executions, regardless of their type, to capture data during pipeline execution. This approach not only facilitates the capture of comprehensive execution data but also leverages this information to seamlessly generate equivalent pipelines on alternative continuous integration platforms.

Inventors

  • Hemanth Mantri
  • Dinesh Garg
  • Tianyi Li
  • Bradley Rydzewski
  • Pranav Rastogi

Assignees

  • Harness Inc.

Dates

Publication Date
20260507
Application Date
20241107

Claims (20)

  1. 1 . A method for intelligently migrating a pipeline data file, comprising: intercepting, during the execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server; automatically generating a JSON file from the intercepted runtime data, the JSON file including data in a hierarchical format and having parent-child relationships; and automatically creating a YAML file from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server.
  2. 2 . The method of claim 1 , further comprising installing a plugin into the CI workflow server, the CI workflow server having two or more servers that form the first CI pipeline.
  3. 3 . The method of claim 1 , further comprising instrumenting each of the two or more servers to include the two or more instances of trace code.
  4. 4 . The method of claim 1 , further comprising aggregating the intercepted runtime data, the JSON file generated from the aggregated runtime data.
  5. 5 . The method of claim 1 , wherein the YAML file is generated by a convert server remote from the CI workflow server.
  6. 6 . The method of claim 1 , further comprising generating runtime data related to conditions that have not occurred during pipeline execution.
  7. 7 . The method of claim 1 , wherein intercepting includes intercepting forecast data sent to a listener within the CI workflow server.
  8. 8 . The method of claim 1 , wherein the JSON file can be generated from data intercepted from either a declarative pipeline or a script pipeline.
  9. 9 . The method of claim 1 , wherein the CI workflow server is a Jenkins server.
  10. 10 . A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for automatically and intelligently migrating a pipeline data file, the method comprising: intercepting, during execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server; generating a JSON file from the intercepted runtime data, the JSON file including data in a hierarchical format and having parent child relationships; and creating a YAML file from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server.
  11. 11 . The non-transitory computer readable storage medium of claim 10 , further comprising installing a plugin into the CI workflow server, the CI workflow server having two of more servers that form the first CI pipeline.
  12. 12 . The non-transitory computer readable storage medium of claim 10 , further comprising instrumenting each of the two or more servers to include the two or more instances of trace code.
  13. 13 . The non-transitory computer readable storage medium of claim 10 , further comprising aggregating the intercepted runtime data, the JSON file generated from the aggregated runtime data.
  14. 14 . The non-transitory computer readable storage medium of claim 10 , wherein the YAML file is generated by a convert server remote from the CI workflow server.
  15. 15 . The non-transitory computer readable storage medium of claim 10 , further comprising generating runtime data related to conditions that have not occurred during pipeline execution.
  16. 16 . The non-transitory computer readable storage medium of claim 10 , wherein intercepting includes intercepting forecast data sent to a listener within the CI workflow server.
  17. 17 . The non-transitory computer readable storage medium of claim 10 , wherein the JSON can migrate a pipeline JSON into declarative pipelines and script pipelines.
  18. 18 . The non-transitory computer readable storage medium of claim 10 , wherein the CI workflow server is a Jenkins server.
  19. 19 . A system for automatically and intelligently migrating a pipeline data file, comprising: one or more servers, wherein each server includes a memory and a processor; and one or more modules stored in the memory and executed by at least one of the one or more processors to intercept, during execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server, automatically generate a JSON file from the intercepted runtime data, the JSON file including data in a hierarchical format and having parent child relationships; and automatically create a YAML file from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server.
  20. 20 . The system of claim 19 , wherein the CI workflow server is a Jenkins server.

Description

BACKGROUND It is vital for companies that provide software products to keep their software up to date and running smoothly. Many companies utilize workflow server pipelines to test and move their software updates to production. With many types of pipeline applications, it is desirable to migrate a pipeline from one pipeline application to another. Migrating pipelines from JENKINS, an open source automation server, to alternate pipeline formats is a cumbersome and manual-intensive process. Existing conversion tools are only equipped to handle declarative pipelines (e.g., those defined in YAML) from YAML to YAML file, but are not able to migrate scripted pipelines (such as those written in Groovy). To convert a pipeline from one format to another, developers are typically required to do it manually, converting each part from the original pipeline format to a corresponding part in the other pipeline format. What is needed is an improved way for converting continuous integration (CI)/continuous delivery (CD) pipelines from one format to another. SUMMARY The present technology, roughly described, captures runtime data for a pipeline execution, generates an intermediate hierarchical file that includes relationships between the captured data, and converts the intermediate file to alternative format pipeline files, such as YAML files. The present system employs dynamic instrumentation of pipeline executions, regardless of their type, to capture data during pipeline execution. This approach not only facilitates the capture of comprehensive execution data but also leverages this information to seamlessly generate equivalent pipelines on alternative continuous integration platforms. Consequently, the present technology ensures a versatile and automated migration process that is both platform-agnostic and capable of handling various pipeline configurations. The present system detects runtime execution data during the execution of a continuous integration (CI)/continuous delivery (CD) workflow server. The runtime execution data is intercepted, aggregated, and then organized into a hierarchical file, such as for example a JSON file. The JSON file is utilized as an intermediate format, and from it a YAML file can be created in a variety of alternate pipeline formats. This process is performed automatically, and is much more efficient than requiring a developer to manually convert a YAML file in one format to another. In some instances, the present technology performs a method for intelligently and automatically migrating a pipeline data file. The method begins with intercepting, during the execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server. Next, a JSON file is automatically generated from the intercepted runtime data, the JSON file includes data in a hierarchical format and has parent-child relationships among all the steps. A YAML file is then automatically created from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server. In some instances, the present technology includes a non-transitory computer-readable storage medium having embodied thereon a program, the program being executable by a processor to intelligently and automatically migrating a pipeline data file. The method begins with intercepting, during the execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server. Next, a JSON file is automatically generated from the intercepted runtime data, the JSON file including data in a hierarchical format and having parent child relationship. A YAML file is then automatically created from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server. In some instances, the present technology includes a non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to intercept, during execution of a continuous integration pipeline having a first format, runtime data by two or more instances of trace code installed in a continuous integration (CI) workflow server, automatically generate a JSON file from the intercepted runtime data, the JSON file including data in a hierarchical format and having parent child relationships; and automatically create a YAML file from the JSON file, the YAML in a second pipeline format that differs from the first pipeline format associated with the first CI workflow server. BRIEF DESCRIPTION OF FIGURES FIG. 1 is a block diagram of a system for automatically converting CI/CD workflow server pipelines. FIG. 2 is a block diagram of a convert application located on a convert server. FIG. 3 is a block diagram of a CI/CD work