Concepts
Introduction
This guide introduces some basic concepts to help you understand how CircleCI manages your CI/CD pipelines.
Concurrency
In CircleCI, concurrency refers to utilizing multiple containers to run multiple jobs at the same time. To keep the system stable for all CircleCI customers, we implement different soft concurrency limits on each of the resource classes for different executors. If you experience queueing on your jobs, you may be hitting these limits. Customers on annual plans can request an increase to those limits at no extra charge.
See the Concurrency page for more information.
Configuration
CircleCI believes in configuration as code. Your entire CI/CD process is orchestrated through a single file called config.yml
. The config.yml
file is located in a folder called .circleci
at the root of your project that defines the entire pipeline.
Example of a directory setup using CircleCI:
├── .circleci
│ ├── config.yml
├── README
└── all-other-project-files-and-folders
Your CircleCI configuration can be adapted to fit many different needs of your project. The following terms, sorted in order of granularity and dependence, describe the components of most common CircleCI projects:
-
Pipeline: Represents the entirety of your configuration.
-
Workflows: Responsible for orchestrating multiple jobs.
-
Jobs: Responsible for running a series of steps that perform commands.
-
Steps: Run commands (such as installing dependencies or running tests) and shell scripts to do the work required for your project.
The following illustration uses an example Java application