CircleCI is a cloud-based continuous integration and continuous delivery (CI/CD) platform that automates software testing, building, and deployment through declarative YAML configuration. It orchestrates workflows across Docker containers, Linux VMs, macOS, Windows, and self-hosted runners, enabling teams to ship code faster with parallelism, caching, and approval gates. Understanding CircleCI's configuration structure—from jobs and executors to workflows, orbs, and dynamic config—is essential for building efficient, scalable pipelines that balance speed, reliability, and cost.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 112 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Configuration Fundamentals
Everything in CircleCI starts from a single .circleci/config.yml, and these are the keys that form its skeleton — the version line that unlocks features, the jobs and steps that do the work, and the run and checkout commands you'll write in nearly every pipeline. Get fluent here first; every later table builds on this vocabulary.
| Element | Example | Description |
|---|---|---|
version: 2.1jobs: build: docker: - image: cimg/node:18.0 | Main CircleCI configuration file at .circleci/config.yml — defines jobs, workflows, executors, and all pipeline behavior. | |
version: 2.1 | Config file schema version. 2.1 enables orbs, parameters, reusable commands, and pipeline features. | |
jobs: test: docker: - image: cimg/python:3.9 steps: - checkout | • Defines named step collections that run in isolated environments • can run in parallel or sequentially within workflows. | |
steps: - checkout - run: npm install - run: npm test | Lists sequential commands within a job — includes checkout, run, save_cache, restore_cache, store_artifacts, etc. | |
- run: name: Install deps command: pip install -r requirements.txt | • Executes shell commands inside the job environment • supports name, command, working_directory, shell, when, background, and max_auto_reruns parameters. |