Systems and methods for testing source code

US10515005B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10515005-B1
Application numberUS-201916457384-A
CountryUS
Kind codeB1
Filing dateJun 28, 2019
Priority dateDec 20, 2018
Publication dateDec 24, 2019
Grant dateDec 24, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Command shells · CPC title

  • G06F8/71Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10515005B1 cover?
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…
Who is the assignee on this patent?
Atlassian Pty Ltd, Atlassian Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 24 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).