Systems and methods for testing source code
Abstract
Methods and systems for testing source code are disclosed. The method includes mounting a shared memory and launching a controller container. The controller container is configured to retrieve a repository identifier of a repository on which the source code is stored, and a build descriptor including build steps and an indicator of a build VM image for generating the build. The method further includes storing the build steps in the shared memory, retrieving the source code from the repository based on the repository identifier, and storing the retrieved source code in the shared memory. The method also includes launching a build container based on the indicator of the build VM image, the build container configured to retrieve the build steps and the source code from the shared memory and perform the build on the source code based on the steps defined in the build steps.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method for testing source code, the method comprising:
mounting a shared memory; launching a controller container configured to retrieve a repository identifier of a repository on which the source code is stored, and a build descriptor including build steps, and an indicator of a build VM image for generating the build; storing the build steps in the shared memory; retrieving the source code from the repository based on the repository identifier; storing the retrieved source code in the shared memory; launching a build container based on the indicator of the build VM image, the build container configured to retrieve the build steps and the source code from the shared memory and perform the build on the source code based on the steps defined in the build steps.
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:
retrieving the build VM image based on the indicator of the build VM image from the build descriptor; and launching the build container from the retrieved build VM image.
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 requesting a container management system to launch a container group, the shared memory being mounted in the container group, and the controller container and the build 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 detecting comprises receiving a notification that the source code is updated, the notification comprising the repository identifier.
11 . The method of claim 10 , wherein the method for testing the source code is triggered upon receipt of the notification.
12 . A system for testing source code, the system comprising:
a processor, a communication interface, and a non-transitory computer-readable storage medium storing sequences of instructions, which when executed by the processor, cause the processor to: cause a controller container to be launched; the controller container configured to:
cause a shared memory to be mounted,
retrieve a build description associated with a repository on which the source code is stored, the build description comprising build steps and an indicator of a build VM image for generating the build;
extract the build steps from the build description and store the build steps in the shared memory,
cause a repository container to be launched, the repository container configured to retrieve the source code from the repository and store the retrieved source code in the shared memory;
cause a build container to be launched based on the indicator of the build VM image, the build container configured to retrieve the build steps and the source code from the shared memory and perform the build on the source code based on the build steps.
13 . The system of claim 12 , wherein the processor is configured to execute instructions that cause the processor to:
detect that the repository is updated; and retrieve the build description associated with the repository.
14 . The system of claim 13 , wherein to detect that the repository is updated the processor is configured to receive a notification that the repository is updated, the notification comprising a repository identifier.
15 . The system of claim 14 wherein the processor is configured to execute instructions that cause the processor to:
generate a job descriptor based on the received notification and the build description, the job descriptor comprising one or more of a status field indicating a status of the build, a permissions field indicating permissions to access the repository, the repository identifier, and the build steps.
16 . The system of claim 12 , wherein the processor is configured to execute instructions that cause the processor to pass a job descriptor identifier of the generated job descriptor and permission information to access the system to the controller container.
17 . The system of claim 16 , wherein the processor is configured to execute instructions that cause the processor to pass the build description and a repository identifier to the controller container in response to receiving a request from the controller container, the request comprising the job descriptor identifier and the permission information.
18 . The system of claim 15 , wherein the processor is configured to execute instructions that cause the processor to receive one or more of build results or build updates from the controller container and update the status of the build based on the build results or the build updates.
19 . The system of claim 12 , wherein the processor is configured to execute instructions that cause the processor to request a container management system to launch a container group, the controller container launched within in the container group.
20 . One or more non-transient computer readable storage media storing instructions which, when executed by a processor, cause the processor to:
cause a controller container to be launched; the controller container configured to:
cause a shared memory to be mounted,
retrieve a build description associated with a source code repository from a source code management system, the build description comprising build steps and an indicator of a build VM image for generating the build;
extract the build steps from the build description and store the build steps in the shared memory,
cause a repository container to be launched, the repository container configured to retrieve source code from the source code repository and store the retrieved source code in the shared memory;
cause a build container to be launched based on the indicator of the build VM image, the build container configured to retrieve the build steps and the source code from the shared memory and perform the build on the source code based on the build steps.Join the waitlist — get patent alerts
Track US2020387443A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.