Systems and methods of integrated testing and deployment in a continuous integration continuous deployment (CICD) system
US-10303586-B1 · May 28, 2019 · US
US10515005B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10515005-B1 |
| Application number | US-201916457384-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jun 28, 2019 |
| Priority date | Dec 20, 2018 |
| Publication date | Dec 24, 2019 |
| Grant date | Dec 24, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A continuous integration system and method for testing source code is disclosed. In particular, the continuous integration system allows developers to create predefined tasks for builds—each task comprises information to perform a particular build step. In certain embodiments, developers can select a particular task from a set of built-in tasks to add to their build configuration without having to know or determine the underlying build logic required to perform the task (such as the commands needed to execute the task, the artefacts required for the task, etc.). In particular, the disclosed systems and methods allow developers to add one or more predefined tasks in their build configuration, without adding the build logic associated with the task in the configuration file.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for testing source code performed by a continuous integration system, the continuous integration system comprising a task definition repository storing a plurality of task identifiers and associated task scripts, the method comprising: receiving at the continuous integration system an event descriptor from a source code management system, the event descriptor comprising a repository identifier of a repository maintained by the source code management system in which the source code to be tested is maintained; retrieving a configuration file from the repository maintained in the source code management system in which the source code is maintained, the configuration file comprising one or more build steps and at least one build step comprising at least one task identifier of a task to be executed by the continuous integration system to test the source code; creating a job descriptor for testing the source code, the job descriptor comprising at least the repository identifier, and at least one build step identifier; instructing a container management system to test the source code according to the created job descriptor, the container management system configured to: launch a controller container configured to retrieve the repository identifier, and the at least one build step identifier, the controller container configured to extract the at least one build step and the task script into an executable build script and store the executable build script in a shared memory; retrieve the source code from the repository based on the repository identifier; store the retrieved source code in the shared memory; launch a build container, the build container configured to retrieve the executable build script and the source code from the shared memory and perform the build on the source code based on the executable build script, the build container further configured to retrieve a task script corresponding to the task identifier of the task from the task definition repository and package build logic associated with the task script into a job description and request a launch container to launch a task container to execute the job description. 2. The method of claim 1 , further comprising launching a repository container, the repository container configured to perform the steps of retrieving the source code from the repository and storing the retrieved source code in the shared memory. 3. The method of claim 2 , further comprising receiving, at the controller container, permission information for accessing the repository. 4. The method of claim 3 , further comprising: receiving, at the repository container, the repository identifier and the permission information from the controller container, and accessing the repository using the repository identifier and the permission information to retrieve the source code. 5. The method of claim 1 , further comprising: launching the build container based on a build VM image, an indicator of the build VM image provided in the job descriptor. 6. The method of claim 1 further comprising: retrieving, by the controller container, results of the build from the build container; and making the results available for inspection. 7. The method of claim 6 , wherein making the results available for inspection comprises forwarding the results to a feedback system. 8. The method of claim 1 , further comprising instructing the container management system to launch a container group, the shared memory being mounted in the container group, and the controller container, the build container, and the task container being launched in the container group. 9. The method of claim 1 further comprising detecting that the source code in the repository is updated. 10. The method of claim 9 , wherein the method for testing the source code is triggered in response to detecting that the source code in the repository is updated. 11. A continuous integration system for testing source code, the system comprising: a processor, a communication interface, and a non-transitory computer-readable storage medium storing a task definition repository including a plurality of task identifiers and associated task scripts and sequences of instructions, which when executed by the processor, cause the processor to: receive at the continuous integration system an event descriptor from a source code management system, the event descriptor comprising a repository identifier of a repository maintained by the source code management system in which the source code to be tested is maintained; retrieve a configuration file from the repository maintained in the source code management system in which the source code is maintained, the configuration file comprising one or more build steps and at least one build step comprising at least one task identifier of a task to be executed by the continuous integration system to test the source code; create a job descriptor for testing the source code, the job descriptor comprising at least the repository identifier, and the at least one build step comprising the at least one task identifier; instruct a container management system to test the source code according to the created job descriptor, and cause the container management system to: launch a controller container configured to retrieve the repository identifier, the at least one build step and the task script, the controller container configured to extract the at least one build step and the at least one task identifier into an executable build script and store the executable build script in a shared memory; retrieve the source code from the repository based on the repository identifier; store the retrieved source code in the shared memory; launch a build container, the build container configured to retrieve the executable build script and the source code from the shared memory and perform the build on the source code based on the executable build script, the build container further configured to retrieve a task script corresponding to the task identifier of the at least one task from the task definition repository and package build logic associated with the task script into a job description and request a launch container to launch a task container to execute the job description. 12. The continuous integration system of claim 11 , wherein the build container is configured to end the task container once the job description is executed. 13. The continuous integration system of claim 11 , wherein the processor is configured to execute instructions that cause the processor to cause the container management system to: launch a repository container, the repository container configured to perform the steps of retrieving the source code from the repository and storing the retrieved source code in the shared memory. 14. The continuous integration system of claim 11 , wherein the processor is configured to execute instructions that cause the processor to cause the container management system to receive, at the controller container, permission information for accessing the repository. 15. The continuous integration system of claim 11 , wherein the processor is configured to execute instructions that cause the processor to cause the container management system to: retrieve, by the controller container, results of the build from the build container; and make the results available for inspection. 16. The continuous integration system of claim 11 , wherein the processor is configured to execute instructions that cause the processor to cause the container mana
Command shells · CPC title
Version control (security arrangements therefor G06F21/57); Configuration management · CPC title
for test execution, e.g. scheduling of test suites · CPC title
Compilation · CPC title
for test version control, e.g. updating test cases to a new software version · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.