IP Library Granted Patent US 10,303,586
Granted Patent B1
US 10,303,586 · App. 16/025,025 · Granted May 28, 2019

Systems and methods of integrated testing and deployment in a continuous integration continuous deployment (CICD) system

Inventor: Andrey Falko (Oakland, CA)
Assignee: SALESFORCE.COM, INC.
G06F11/368G06F11/3636
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,303,586
App. No.
16/025,025
Granted
May 28, 2019
Kind
B1
Abstract

Systems and methods are provided for receiving a code change at a continuous integration and continuous deployment (CICD) server system, generating a unique change identifier, generating a new code build which includes the code change, testing the generated new code build by performing a code trace for phase of testing or production environment based on at least one predetermined testing parameter that includes a predetermined trace time for the code change of the generated change identifier, and displaying test results for the change identifier for the phase of testing or production environment to visually highlight a pass or failure of the testing for the code change based on the predetermined testing parameter for the predetermined trace time.

Claims (57)

1. A method comprising:

receiving a code change at a continuous integration and continuous deployment (CICD) server system;

generating a unique change identifier for the received code change at a version control system of the CICD server system;

generating, at a continuous integration system of the CICD server system, a new code build which includes the code change;

testing, at the CICD server system, the generated new code build by performing a code trace for at least one phase of the testing using an instrumentation library and distributed tracing system of the CICD server system based on at least one predetermined testing parameter that includes a predetermined trace time for the code change of the generated change identifier, wherein the instrumentation library automatically performs the code trace to determine the start and end times of the trace of the code change of the change identifier; and

displaying, on a display device coupled to the CICD system, test results for the change identifier for the at least one phase of testing to visually highlight a pass or failure of the testing for the code change based on the at least one predetermined testing parameter for the predetermined trace time.

2. The method of claim 1 , further comprising:

transmitting, from the instrumentation library to the distributed tracing system, the change identifier and the at least one phase of the testing;

generating, at the distributed tracing system, a trace identifier from the received change identifier;

tracing, at the distributed tracing system, the new code build based on the generated trace identifier;

determining, at the distributed tracing system, a time taken per unit span of the new code build being traced; and

determining, at the distributed tracing system, the test results based on the passing or failing of the testing of the code change based on the at least one predetermined testing parameter for the predetermined trace time.

3. The method of claim 2 , further comprising:

transmitting, from the distributed tracing system to a user interface (UI) system that includes the display device, the trace identifier, the determined time taken per unit span of the new code build being traced, and the test results for the one or more test phases,

wherein the displaying comprises:

displaying, at the user interface system based on the received trace identifier, the change identifier, the determined time taken per unit span, and the test results for the at least one phase of testing to visually highlight the pass or failure of the code change.

4. The method of claim 1 , further comprising:

receiving, at a deployment system of the CICD server system, the tested new code build;

generating, at the distributed tracing system, a trace identifier from the received change identifier; and

testing, using the instrumentation library and the distributed tracing system, the new code build for at least one production environment based on the at least one predetermined testing parameter that includes the predetermined trace time for the code change of the generated trace identifier;

wherein the displaying comprises:

displaying, at the user interface system based on the received trace identifier, the change identifier, the determined time taken per unit span, and the test results for the at least one production environment to visually highlight the pass or failure of the code change.

5. The method of claim 4 , further comprising:

performing, at a deployment system of the CICD server system, a rollback operation when the test results for the new code build in the one or more production environments determines at least one failure,

wherein the rollback operation deploys a predetermined previous code version for execution by the deployment system.

6. The method of claim 4 , further comprising:

transmitting, from the instrumentation library to the distributed tracing system, a change identifier and one or more tags that identify the at least one production environment;

generating, at the distributed tracing system, a trace identifier from the received change identifier;

performing a trace, at the distributed tracing system, of the new code build based on the trace identifier and the one or more tags;

determining, at the distributed tracing system, the time taken per unit span of the new code build for the one or more production environments; and

determining, at the distributed tracing system, the test results based on the passing or failing of the testing of the code change based on the determined time taken per unit span of the new code build for the one or more production environments.

7. The method of claim 6 , further comprising:

transmitting, to the user interface system, the trace identifier, the determined time taken per unit span, and the determined test results for the one or more production environments,

wherein the displaying comprises:

displaying, on the display device of the user interface system, the change identifier, the determined time take per unit span, and the determined test results for the one or more production environments based on the trace identifier.

8. The method of claim 1 , further comprising:

displaying, on the display device of the user interface system, a ranking of one or more components of the tested new code build based on the test results.

9. A system comprising:

a continuous integration and continuous deployment (CICD) server system to receive a code change, the CICD server system comprising:

a version control system to generate a unique change identifier for the received code change; and

a continuous integration system to generate a new code build which included the code change,

wherein the CICD server system tests the generated new code build by performing a code trace for at least one phase of the testing using an instrumentation library and distributed tracing system of the CICD server system based on at least one predetermined testing parameter that includes a predetermined trace time for the code change of the generated change identifier, wherein the instrumentation library automatically performs the code trace to determine the start and end times of the trace of the code change of the change identifier, and

a display device coupled to the CICD system, to display test results for the change identifier for that at least one phase of testing to visually highlight a pass or failure of the testing for the code change based on the at least one predetermined testing parameter for the predetermined trace time.

10. The system of claim 9 , wherein the instrumentation library transmits the change identifier and the at least one phase of the testing to the distributed tracing system,

wherein the distributed tracing system generates a trace identifier from the received change identifier, traces the new code build based on the generated trace identifier, determines a time taken per unit span of the new code build being traced, and determines the test results based on the passing or failing of the testing of the code change based on the at least one predetermined testing parameter for the predetermined trace time.

11. The system of claim 10 , further comprising:

a user interface (UI) system that includes the display device,

wherein the distributed tracing system the trace identifier, the determined time taken per unit span of the new code build being traced, and the test results for the one or more test phases, to the user interface system, and

wherein the user interface system, based on the received trace identifier, displays the change identifier, the determined time taken per unit span, and the test results for the at least one phase of testing to visually highlight the pass or failure of the code change.

12. The system of claim 9 , wherein the CICD server system further comprises a deployment system to receive the tested new code build,

wherein the distributed tracing system generates a trace identifier from the received change identifier, and tests the new code build for at least one production environment based on the at least one predetermined testing parameter that includes the predetermined trace time for the code change of the generated trace identifier, and

wherein the user interface system displays the change identifier, the determined time taken per unit span, and the test results for the at least one production environment to visually highlight the pass or failure of the code change based on the received trace identifier.

13. The system of claim 12 , wherein the CICD server system further comprises a deployment system which performs a rollback operation when the test results for the new code build in the one or more production environments determines at least one failure, wherein the rollback operation deploys a predetermined previous code version for execution by the deployment system.

14. The system of claim 12 , wherein the instrumentation library transmits a change identifier and one or more tags that identify the at least one production environment to the distributed tracing system,

wherein the distributed tracing system generates a trace identifier from the received change identifier, performs a trace of the new code build based on the trace identifier and the one or more tags, determines the time taken per unit span of the new code build for the one or more production environments, and determines the test results based on the passing or failing of the testing of the code change based on the determined time taken per unit span of the new code build for the one or more production environments.

15. The system of claim 14 , wherein the user interface system receives the trace identifier, the determined time taken per unit span, and the determined test results for the one or more production environments, and displays the change identifier, the determined time take per unit span, and the determined test results for the one or more production environments based on the trace identifier.

16. The system of claim 9 , wherein the user interface system displays a ranking of one or more components of the tested new code build based on the test results.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2018
From: FALKO, ANDREY
To: SALESFORCE.COM, INC.
Reel/Frame 046250/0090 →
Cited By (4)
US 12,265,808 US 12,333,331 US 12,360,763 US 12,369,056