CircleCI — hosted CI/CD-платформа, конкурент GitHub Actions и GitLab CI. Пайплайны описываются в файле .circleci/config.yml в репозитории. Поддерживает параллельное выполнение заданий (jobs) и разделение тестов между несколькими контейнерами (test splitting).
Как работает
Каждый коммит или PR запускает пайплайн из нескольких jobs. Job выполняется в изолированном Docker-контейнере или VM. Jobs объединяются в workflows с зависимостями: job «deploy» запускается только после успеха «test» и «build».
Orbs — многократно используемые пакеты конфигурации. CircleCI Orb Registry содержит готовые интеграции: AWS, GCP, Slack, Kubernetes. Вместо 50 строк конфигурации AWS ECR — 5 строк с использованием orb.
Test splitting: 100 тестов делятся между 4 контейнерами → каждый выполняет 25 тестов параллельно → время сокращается в 4 раза. CircleCI автоматически балансирует тесты по исторически измеренному времени выполнения.
История
CircleCI основан в 2011 году Полом Биглом (Paul Biggar) и Иэном Кочени (Ian Cordahi) в Сан-Франциско. Первыми клиентами были стартапы YC. В 2015 году достиг 1 млн сборок в день. В 2021 году привлёк $100 млн серии F с оценкой $1.7 млрд. В декабре 2022 года сообщил об инциденте безопасности с утечкой секретов.
Планы и лимиты
- Free: 30 000 кредитов/мес (~6000 минут выполнения), 1 concurrent job.
- Performance ($15/мес+): масштабируемые кредиты, 10+ concurrent jobs.
- Server: on-premise установка для корпоративных требований.
Связь с хостингом
CircleCI интегрируется с Kubernetes (деплой через kubectl или Helm), AWS ECS, GCP Cloud Run. После сборки Docker-образа и публикации в реестре — автоматическое обновление Deployment в кластере. Для VPS — деплой через rsync over SSH или Ansible.
Ключевые отличия от похожих терминов
GitHub Actions — встроен в GitHub, бесплатный для публичных репозиториев. GitLab CI — встроен в GitLab. Runner — агент CI, который выполняет jobs (может быть self-hosted). CircleCI — независимая платформа, поддерживает GitHub, GitLab и Bitbucket одновременно.
Архитектура CircleCI
CircleCI — облачный CI/CD на базе Docker-контейнеров (Executors: Docker, Machine, macOS, Windows). Конфиг .circleci/config.yml. Pipelines: workflows из jobs. Caching: зависимостей между runs (npm cache, pip cache). Orbs — переиспользуемые наборы конфигурации.
Конфигурация Pipeline
Стандартный pipeline: test → build → deploy. Conditions: when: {branch: main} для деплоя только с main. Параллельные jobs: test-unit и test-integration одновременно. Approval: ручное подтверждение перед деплоем на production.
CircleCI vs GitHub Actions vs GitLab CI
GitHub Actions: бесплатно для публичных репозиториев, native GitHub integration. CircleCI: быстрее сборки за счёт лучшего кэширования, удобнее для monorepo. GitLab CI: всё в одном инструменте. CircleCI: от $15/мес на Teams тарифе. Для open source — оба бесплатны.
CircleCI Orbs
Orbs — переиспользуемые конфигурационные пакеты: orbs: node: circleci/node@5. Популярные: circleci/aws-ecr (деплой в ECR), circleci/kubernetes (kubectl). Создание кастомных Orbs для DRY конфигов нескольких проектов. CircleCI Config SDK (TypeScript): генерация config.yml из кода.