You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: jekyll/_cci2/optimization-cookbook.md
+19-18Lines changed: 19 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -16,21 +16,16 @@ The *CircleCI Optimizations Cookbook* is a collection of individual use cases (r
16
16
17
17
Sometimes when you are using the CircleCI platform, you may encounter unexpected lags in pipeline performance, which can negatively affect your ability to perform critical organizational functions. These performance bottlenecks can not only impact overall performance, but also cause workflow and build failures. These "hiccups" can cost you money in terms of credit usage, resources, and individual time spent reducing bottlenecks.
18
18
19
+
### Optimization Recipes
20
+
19
21
This guide provides you with the following optimization strategies that you can utilize to minimize any potential performance bottlenecks and ensure that you are getting the best performance possible when using CircleCI:
20
22
21
-
- Running jobs sequentially to prevent concurrency
22
-
- Implementing caching strategies to optimize builds and workflows
23
-
- Improving test performance
23
+
-[Running jobs sequentially to prevent concurrency](#running-jobs-sequentially-to-prevent-concurrency)
24
+
-[Implementing caching strategies to optimize builds and workflows](#using-caching-to-optimize-builds-and-workflows)
25
+
-[Improving test performance](#improving-test-performance)
24
26
25
27
**Note:** This guide will be updated with new optimization strategies on a continual basis, so please feel free to refer to this page for new and updated content.
26
28
27
-
### Optimization Recipes
28
-
29
-
The sections below lists the different optimization tasks that can be performed using the CircleCI platform.
30
-
31
-
* TOC
32
-
{:toc}
33
-
34
29
## Running Jobs Sequentially To Prevent Concurrency
35
30
36
31
One of the most common tasks you may encounter when using the CircleCI platform is managing multiple jobs simultaneously to ensure your workflows do not fail because of system timeouts. This becomes especially important when you have multiple contributors and committers working in the same environment. Because the CircleCI platform was designed to handle multiple tasks simultaneously without encountering performance degradation or latency, concurrency may sometimes become an issue if there are a large number of jobs being queued, waiting for previous jobs to be completed before new jobs can be initiated, and system timeouts are set too low. In this case, one job will be completed, and other jobs will fail due to this timeout setting.
@@ -39,25 +34,31 @@ To better optimize workflows and jobs and prevent concurrency and subsequent job
39
34
40
35
**Note:** For more detailed information about the CircleCI Queueing orb, refer to the following CircleCI pages:
41
36
42
-
- Queueing and Single Threading Overview - https://github.com/eddiewebb/circleci-queue
4) Use `queue` elements in your existing workflows and jobs.
61
+
4) Use [`queue` elements](https://circleci.com/orbs/registry/orb/eddiewebb/queue#usage-examples) in your existing workflows and jobs.
61
62
62
63
5) Opt-in to use of third-party orbs on your organization’s **Security Settings** page.
63
64
@@ -146,9 +147,9 @@ Notice in the above example that you can use a `checksum` in the cache key. This
146
147
147
148
**Note:** Before adding any caching steps to your workflow, verify the dependencies installation step succeeds. Caching a failed dependency step will require you to change the cache key in order to avoid failed builds due to a bad cache.
148
149
149
-
Because caching is a such a critical aspect of optimizing builds and workflows, you should first familiarize yourself with the following page that describes caching and how various strategies can be optimized:
150
+
Because caching is a such a critical aspect of optimizing builds and workflows, you should first familiarize yourself with the following page that describes caching and how various strategies can be used to optimize your config:
0 commit comments