БесплатноБазовая интеграция с 1С в подарок при заказе интернет-магазина под ключ
DevOps и BitrixVM

CI/CD для Битрикс-проектов: автоматические сборка, тесты и доставка релизов

Настраиваем конвейеры CI/CD для проектов на 1С-Битрикс: сборка ассетов, автотесты и линтеры, деплой по веткам и окружения dev, stage и prod. Релизы выкатываются по кнопке, а не вручную по FTP, и проходят контроль качества до попадания на боевой сайт.

10 летс проектами на 1С-Битрикс
3окружения dev · stage · prod
от 1 днядо первого автоконвейера
GitLab · GHA · Jenkinsнастраиваем под ваш стек
commit build test lint dev stage prod CI / CD pipeline
Что входит

Из чего состоит конвейер CI/CD для Битрикс

Собираем конвейер под ваш стек и инфраструктуру — от автосборки ассетов и тестов до деплоя по веткам на окружения dev, stage и prod с контролем качества релиза.

Конвейеры сборки и доставки

Pipeline на GitLab CI, GitHub Actions или Jenkins под ваш репозиторий и инфраструктуру Битрикс.

Автотесты и линтеры

PHPUnit, Codeception, PHPStan и PHP_CodeSniffer проверяют код до попадания на боевой сайт.

Сборка ассетов

Сборка стилей и скриптов через Webpack, Vite или Gulp, минификация и версионирование статики.

Деплой по веткам

Ветка определяет окружение: feature на dev, release на stage, master на prod по правилам.

Окружения dev, stage, prod

Изолированные среды с раздельными настройками, базами и доступами под каждый этап.

Контроль качества релизов

Релиз проходит только при зелёном конвейере, ручное подтверждение на prod и журнал выкаток.

Как это устроено

Путь коммита от ветки до боевого сайта

Разработчик пушит ветку, конвейер собирает ассеты, прогоняет тесты и линтеры, выкатывает сборку на dev и stage, а на prod деплой уходит после подтверждения и проходит контроль качества.

Коммитpush в ветку Сборкаассеты · артефакт Тестылинтеры · QA devавто stageпредпрод prodпо кнопке Зелёный конвейер — обязательное условие выката на боевой сайт
Коммит → сборка и тесты → dev и stage → подтверждение → деплой на prod.
Зачем CI/CD на Битрикс

Где ручные релизы ломают боевой сайт

Пока релизы выкатывают вручную по FTP и правят прямо на проде, каждая выкатка — это риск. CI/CD превращает доставку кода в предсказуемый конвейер с проверками и откатом.

Релизы выкатывают вручную по FTP, файлы затирают друг друга и теряются.
Конвейер собирает релиз из репозитория и доставляет его на сервер автоматически, без ручного копирования.
Правки делают прямо на боевом сайте, и сломанный код виден всем посетителям.
Изменения проходят через dev и stage, на prod уходит только то, что прошло сборку и тесты.
Никто не помнит, что и когда выкатили, откатить релиз быстро нельзя.
Каждый деплой версионирован и записан в журнал, откат на прошлый релиз делается в один шаг.
Ассеты собирают руками, на проде оказывается старая или несжатая статика.
Сборка стилей и скриптов с минификацией и версионированием выполняется в конвейере на каждый релиз.
Ошибки и опечатки в коде находят уже на проде по жалобам клиентов.
Линтеры и автотесты ловят ошибки до выката, красный конвейер не пускает релиз на боевой сайт.
Эффект после внедрения

Что меняется в цифрах

×5
быстрее выкатка релиза на боевой сайт
−85%
инцидентов из-за ручных правок на проде
1
кнопка на деплой вместо ручного FTP
до 60с
на откат к прошлому релизу

Ориентиры по проектам нашей команды. Точные показатели оценим на бесплатном аудите ваших релизов.

Сравнение

Ручные релизы, фрилансер и конвейер от B2Bsite

Сравниваем три способа доставлять код на боевой Битрикс-сайт по тому, что важно для стабильности релизов.

Критерий Ручные релизы по FTPРазовый фрилансерКонвейер B2Bsite
Скорость выката Часы на каждую выкаткуСкрипт без проверокДеплой по кнопке за минуты
Контроль качества Нет, правки прямо на продеИногда, без stageТесты и линтеры до прода
Откат и история Память разработчикаСкрипт без журналаВерсии и журнал выкаток
Прозрачность Зависит от человекаЗнает один человекДокументация и обучение
Риски для прода Высокий риск паденияСредний рискОткат за секунды
Этапы работы

Как мы внедряем конвейер CI/CD

Идём от аудита текущих релизов к рабочему конвейеру, который выкатывает код на dev, stage и prod без ручной рутины.

01

Аудит релизов и инфраструктуры

Разбираем, как сейчас выкатывается код, где репозиторий, какие серверы и окружения есть у проекта.

02

Git-флоу и ветвление

Согласуем модель веток и правила: какая ветка на какое окружение уходит и кто подтверждает релиз.

03

Сборка и проверки

Подключаем сборку ассетов, автотесты и линтеры, настраиваем артефакты и кэширование зависимостей.

04

Деплой и окружения

Поднимаем dev, stage и prod, настраиваем выкатку по веткам и безопасную доставку на боевой сайт.

05

Откат и контроль качества

Включаем версионирование релизов, быстрый откат, уведомления и журнал выкаток для команды.

06

Передача и обучение

Документируем конвейер, обучаем команду работе с pipeline и передаём доступы без привязки к нам.

Сроки

Сколько занимает настройка конвейера

Базовый автоконвейер запускаем за пару дней, полную доставку с тремя окружениями и откатом — в течение пары недель.

1–2 дня Аудит релизов, доступов и инфраструктуры проекта
1
2–3 дня Git-флоу, сборка ассетов и первый рабочий pipeline
2
3–5 дней Автотесты, линтеры и контроль качества релизов
3
4–6 дней Окружения dev, stage, prod и деплой по веткам
4
1–2 дня Откат, журнал выкаток, документация и обучение
5
Тарифы

Сколько стоит настройка CI/CD для Битрикс

Стоимость зависит от числа окружений, сложности сборки и набора проверок. Ниже — ориентиры; точную смету присылаем после короткого аудита релизов, бесплатно.

Базовый конвейер
от 45 000 ₽
Срок: от 3 дней

Автосборка и деплой на одно окружение из репозитория.

  • Pipeline в GitLab CI или GitHub Actions
  • Сборка ассетов
  • Автодеплой на боевой сайт
  • Журнал выкаток
Популярный выбор
Полный CI/CD
от 120 000 ₽
Срок: от 2 недель

Три окружения, тесты, линтеры и деплой по веткам.

  • Окружения dev, stage, prod
  • Автотесты и линтеры
  • Деплой по веткам
  • Быстрый откат релиза
  • Контроль качества и уведомления
CI/CD под нагрузку
от 240 000 ₽
Срок: от 4 недель

Конвейер для нескольких команд и сложной инфраструктуры.

  • Все возможности «Полный CI/CD»
  • Контейнеризация и Docker-образы
  • Параллельные пайплайны и матрицы
  • Интеграция с мониторингом
  • Сопровождение и развитие
Базовый конвейер от 45 000 ₽
Срок: от 3 дней

Автосборка и деплой на одно окружение из репозитория.

  • Pipeline в GitLab CI или GitHub Actions
  • Сборка ассетов
  • Автодеплой на боевой сайт
  • Журнал выкаток
Популярный Полный CI/CD от 120 000 ₽
Срок: от 2 недель

Три окружения, тесты, линтеры и деплой по веткам.

  • Окружения dev, stage, prod
  • Автотесты и линтеры
  • Деплой по веткам
  • Быстрый откат релиза
  • Контроль качества и уведомления
CI/CD под нагрузку от 240 000 ₽
Срок: от 4 недель

Конвейер для нескольких команд и сложной инфраструктуры.

  • Все возможности «Полный CI/CD»
  • Контейнеризация и Docker-образы
  • Параллельные пайплайны и матрицы
  • Интеграция с мониторингом
  • Сопровождение и развитие

Дополнительные опции

Перенос конвейера на Jenkins или другой раннер от 35 000 ₽
Контейнеризация окружений в Docker от 60 000 ₽
Покрытие проекта автотестами под CI от 50 000 ₽
Расчёт выгоды

Сколько времени съедают ручные релизы

Прикиньте, сколько рабочих часов команда теряет на ручных выкатках и разборе инцидентов после них. Конвейер CI/CD возвращает эти часы разработке.

Потери на ручных релизах в месяц 0 ₽

Оценка по формуле: релизы в месяц × часы на релиз × стоимость часа. Это ориентир потерь рабочего времени, а не точная гарантия.

Умный расчёт

Рассчитайте стоимость конвейера CI/CD

Ответьте на несколько вопросов о вашем проекте, стеке и числе окружений — покажем ориентир по стоимости и срокам настройки конвейера.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы по CI/CD на Битрикс

Интернет-магазин

Конвейер GitLab CI с тремя окружениями

Перевели выкатку с ручного FTP на pipeline: сборка, тесты и деплой по веткам на dev, stage и prod.

×5Скорость релиза
−85%Инцидентов на проде
2 неделиСрок
B2B-платформа

GitHub Actions с автотестами и откатом

Подключили PHPUnit и линтеры в конвейер, красная сборка перестала пускать код на боевой сайт.

−70%Багов на проде
40 сОткат релиза
11 днейСрок
Корпоративный портал

Jenkins и Docker для нескольких команд

Собрали конвейер с контейнерами и параллельными пайплайнами под три команды разработки.

6Параллельных сборок
0Простой при релизе
4 неделиСрок
Отзывы клиентов

Что говорят клиенты о настройке CI/CD

«Раньше выкатывали релизы вручную по FTP и каждый раз молились, чтобы ничего не отвалилось. После настройки конвейера деплой стал кнопкой, а откат — секундным делом. Команда выдыхает.»

Сергей К. Технический директор, интернет-магазин

«Подключили автотесты и линтеры в pipeline — багов на проде стало кратно меньше, потому что красная сборка просто не пускает плохой код дальше. Окупилось за первый же месяц спокойных релизов.»

Марина В. Руководитель разработки, B2B-платформа

«Три команды наступали друг другу на ноги при выкатках. Ребята собрали конвейер на Jenkins с контейнерами и окружениями — теперь у каждого свой stage, а на prod уходит только проверенное.»

Алексей Д. Head of IT, корпоративный портал

«Отдельно ценю, что всё задокументировали и обучили команду. Конвейер не чёрный ящик: мы понимаем каждый шаг и можем сами его развивать. Передали доступы без привязки к подрядчику.»

Ольга П. Project-менеджер, дистрибуция
Почему мы

На что можно рассчитывать по договору

Знаем специфику Битрикс

Учитываем особенности ядра, кэш, /bitrix, /upload и обмен с 1С при настройке деплоя.

Любой раннер под ваш стек

Настраиваем GitLab CI, GitHub Actions или Jenkins — берём то, что уже есть в вашей команде.

Деплой без простоя

Доставляем релизы так, чтобы боевой сайт не падал во время выкатки и оставался доступным.

Конвейер без чёрных ящиков

Документируем pipeline и обучаем команду, доступы передаём без привязки к подрядчику.

База знаний

Частые вопросы о CI/CD на Битрикс — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов на 1С-Битрикс. Каждый ответ — позиция нашей команды.

Деплой

Боимся, что во время выкатки сайт упадёт и клиенты увидят ошибку

Наш ответ

Деплой настраиваем атомарно: новый релиз собирается рядом, а переключение на него происходит мгновенно. Если что-то пошло не так, откат возвращает прошлый рабочий релиз за секунды, и посетитель не видит сломанной страницы.

Кэш

После релиза на проде остаётся старый кэш и несвежая статика

Наш ответ

В конвейер встраиваем шаги сборки и версионирования ассетов и сброса нужного кэша Битрикс после выката. Статика получает новые версии в именах файлов, поэтому браузеры подтягивают свежие стили и скрипты, а не отдают старое из кэша.

Тесты

У проекта нет тестов, можно ли вообще настраивать CI/CD

Наш ответ

Да. Начинаем с линтеров и статического анализа, которые ловят ошибки без единого теста, и подключаем дымовые проверки доступности страниц. Полноценное покрытие автотестами наращиваем постепенно — конвейер приносит пользу с первого дня даже без них.

Окружения

Не понимаем, зачем нужны три окружения вместо одного прода

Наш ответ

Dev нужен для быстрой проверки фич, stage повторяет прод и служит для приёмки релиза, а сам prod остаётся стабильным. Разделение убирает правки на боевом сайте: на prod уходит только то, что уже проверено на stage и прошло конвейер.

Подробно об услуге

CI/CD для Битрикс-проектов: что это и зачем команде разработки

CI/CD для Битрикс-проектов — это автоматический конвейер, который собирает, проверяет и доставляет код на боевой сайт без ручного копирования файлов по FTP. Разработчик отправляет изменения в репозиторий, а дальше система сама устанавливает зависимости, собирает стили и скрипты, прогоняет тесты и линтеры и выкатывает релиз на нужное окружение. Вместо нервной ручной выкатки команда получает предсказуемый процесс с проверками на каждом шаге и быстрым откатом, если что-то пошло не так.

Аббревиатура складывается из двух частей. CI — это непрерывная интеграция: код из веток постоянно собирается и проверяется, поэтому ошибки и конфликты всплывают рано, а не в день релиза. CD — это непрерывная доставка кода на серверы: проверенный артефакт автоматически разворачивается на окружениях dev, stage и prod по заданным правилам. Для проектов на 1С-Битрикс такой конвейер особенно ценен, потому что ручные релизы на этой платформе легко заканчиваются затёртыми файлами, старым кэшем и сломанным боевым сайтом.

Из чего складывается конвейер CI/CD

Под капотом конвейер объединяет несколько связанных шагов, каждый из которых снимает свой кусок ручной работы и риска. Сборка готовит код к запуску: ставит зависимости, собирает и минифицирует стили и скрипты, версионирует статику. Тесты и линтеры проверяют код до выката и не пускают на прод то, что не прошло проверки. Деплой доставляет готовый релиз на сервер атомарно, без простоя сайта. Окружения dev, stage и prod изолируют этапы работы. А откат и журнал выкаток дают команде контроль над тем, какая версия сейчас на боевом сайте.

Главные функциональные узлы конвейера:

  • конвейеры сборки и доставки на GitLab CI, GitHub Actions или Jenkins под ваш стек;
  • автотесты на PHPUnit и Codeception плюс статический анализ кода;
  • линтеры PHP_CodeSniffer, PHPStan, ESLint и Stylelint в качестве ворот качества;
  • сборка ассетов через Webpack, Vite или Gulp с минификацией и версионированием;
  • деплой по веткам на окружения dev, stage и prod по заданным правилам;
  • атомарный деплой без простоя, быстрый откат и журнал выкаток с уведомлениями.

Кому нужна настройка CI/CD на Битрикс

Конвейер окупается там, где релизы стали узким местом. Это команды, которые выкатывают код часто, работают над проектом несколькими разработчиками или боятся каждой выкатки на боевой сайт. Чем больше у проекта посетителей и чем дороже простой, тем выше цена ручной ошибки при релизе. Если выкатки делают по FTP, правки вносят прямо на проде, а откатить релиз быстро нельзя — это прямой сигнал, что пора переводить доставку кода на конвейер.

Отдельная ценность — для проектов с несколькими командами и сложной инфраструктурой. Когда над сайтом работают параллельно, ручные релизы превращаются в борьбу за то, чей код окажется на проде. Конвейер с окружениями и деплоем по веткам разводит команды по своим средам, прогоняет проверки и пускает на боевой сайт только согласованный релиз. Разработчики перестают наступать друг другу на ноги, а руководитель получает прозрачную историю всех выкаток.

Как устроены настройка и внедрение

Внедрение CI/CD мы начинаем с аудита текущих релизов: смотрим, как сейчас выкатывается код, где лежит репозиторий, какие есть серверы и окружения. На основе этого согласуем модель ветвления Git и правила деплоя — какая ветка на какое окружение уходит и кто подтверждает выкатку на прод. Затем поднимаем первый рабочий конвейер со сборкой и деплоем на одно окружение, чтобы команда сразу почувствовала отдачу, и итерациями добавляем тесты, линтеры, окружения dev, stage и prod, откат и уведомления.

Особое внимание — специфике 1С-Битрикс. Папки с пользовательскими данными, такие как /upload, кэш и логи, выносим за пределы релиза и подключаем ссылками, чтобы они не перезаписывались при выкатке. Кэш Битрикс сбрасываем управляемо на нужном шаге деплоя. Обмен с 1С работает с данными и не страдает при обновлении кода. Деплой настраиваем атомарным, чтобы боевой сайт не падал во время релиза и оставался доступным для посетителей.

Результат настройки CI/CD для Битрикс-проекта — это управляемый и предсказуемый процесс доставки кода. Релизы выкатываются по кнопке за минуты, а не часами вручную. Тесты и линтеры ловят ошибки до прода, а не по жалобам клиентов. Откат к прошлой версии делается за секунды, а журнал выкаток всегда показывает, что и когда попало на боевой сайт. Команда выкатывает релизы чаще и спокойнее, а сам сайт перестаёт страдать от человеческих ошибок.

Экспертный взгляд

Конвейер CI/CD или привычный деплой по FTP

Соблазн оставить всё как есть понятен: команда привыкла выкатывать релизы вручную, по FTP или через панель хостинга, и кажется, что настройка конвейера CI/CD — это лишняя сложность и трата времени. На бумаге ручная выкатка выглядит проще и дешевле: открыл файловый менеджер, залил изменённые файлы, обновил страницу. Но на практике именно ручные релизы оказываются самым дорогим и хрупким местом проекта на 1С-Битрикс. Ниже разбираем, в чём разница, какие проблемы решает конвейер и как мы строим его так, чтобы он работал годами и не превращался в чёрный ящик.

Почему ручные релизы дорого обходятся

Пока релизы выкатывают вручную, каждая выкатка зависит от внимательности конкретного человека. Разработчик помнит, какие файлы он менял, открывает FTP и заливает их по одному. На этом пути копятся типовые проблемы: забытый файл, затёртая чужая правка, несобранные или несжатые ассеты, оставшийся после выката старый кэш Битрикс. Если что-то пошло не так, откат превращается в спешный поиск бэкапа, пока боевой сайт показывает клиентам ошибку. А когда над проектом работают несколько человек, ручные релизы начинают конфликтовать: чья выкатка была последней, тот и определяет, какой код сейчас на проде.

Чем активнее развивается проект, тем дороже обходится эта ручная работа. Разработчики тратят часы не на код, а на выкатки и разбор инцидентов после них. Боевой сайт регулярно ломается из-за человеческих ошибок, и каждый такой инцидент — это потерянные заказы и нервы команды. А руководитель не видит цельной картины: нет журнала, кто и что выкатил, поэтому при проблеме непонятно, какой именно релиз её вызвал. Чтобы прикинуть масштаб этих потерь именно для вашей команды, на странице есть калькулятор: он показывает, сколько рабочих часов в месяц съедают ручные релизы и их последствия.

Что меняет конвейер CI/CD

Конвейер переводит доставку кода в автоматический и предсказуемый процесс. Разработчик пушит изменения в ветку — и дальше всё происходит само: система ставит зависимости, собирает и минифицирует ассеты, прогоняет тесты и линтеры, выкатывает релиз на нужное окружение. На прод код попадает только с полностью зелёным конвейером, а финальную выкатку подтверждает человек по кнопке. Деплой идёт атомарно, поэтому боевой сайт не падает во время релиза, а откат к прошлой версии делается за секунды переключением символической ссылки.

Команда при этом не теряет контроль, а избавляется от рутины и страха. Релизы становятся частыми и спокойными: больше не нужно собирать выкатку вручную и держать в голове список изменённых файлов. Линтеры и тесты ловят ошибки до прода, поэтому багов на боевом сайте становится кратно меньше. Журнал выкаток показывает, что и когда попало на сайт, а уведомления держат команду в курсе статуса каждой сборки. Освободившееся время уходит на разработку, а не на борьбу с релизами.

Чем конвейер на Битрикс отличается от типового деплоя

Настроить деплой на абстрактном PHP-проекте проще, чем на 1С-Битрикс, и в этом главная ловушка типовых решений. На Битрикс нельзя просто синхронизировать всю папку: есть пользовательские загрузки в /upload, есть кэш и логи, есть файлы обмена с 1С, которые живут отдельно от кода и не должны перезаписываться при каждой выкатке. Есть управляемый кэш ядра, который нужно сбрасывать в правильный момент, иначе после релиза посетители увидят старые страницы. Есть структура /bitrix и публичная часть, которые деплоятся из репозитория, и есть данные, которые в репозитории не лежат.

Поэтому конвейер для Битрикс — это не универсальный скрипт, а настройка с учётом особенностей платформы. Мы выносим пользовательские папки за пределы релиза и подключаем их ссылками, управляем кэшем на нужном шаге, бережно обходим обмен с 1С. Без этого знания типовой деплой либо теряет загруженные файлы при откате, либо оставляет несвежий кэш, либо ломает обмен. Мы специализируемся на проектах 1С-Битрикс и закладываем эти нюансы в конвейер с первого дня. Если конвейер становится частью более широкой автоматизации инфраструктуры, мы подключаем смежные практики из направления CI/CD и автоматизации.

Когда конвейер окупается, а когда хватит простого деплоя

Мы не уговариваем всех подряд строить сложный конвейер с тремя окружениями и контейнерами. Базовая автосборка и автодеплой на одно окружение оправданы почти всегда: даже простой pipeline убирает ручное копирование и человеческие ошибки. Полный CI/CD с окружениями dev, stage и prod, тестами и деплоем по веткам нужен, когда над проектом работает команда, релизы частые, а простой боевого сайта стоит дорого. Контейнеризация и параллельные пайплайны окупаются на проектах с несколькими командами и сложной инфраструктурой. На бесплатном аудите релизов мы разбираем ваш процесс и честно говорим, какой уровень конвейера вам нужен, а не продаём самый дорогой вариант.

Как мы ведём настройку

Старт — это аудит текущих релизов и инфраструктуры. Мы разбираем, как сейчас выкатывается код, где лежит репозиторий, какие есть серверы и окружения, что болит у команды. На основе этого согласуем модель ветвления Git и правила деплоя, а затем поднимаем первый рабочий конвейер со сборкой и деплоем на одно окружение. Дальше идём итерациями: добавляем автотесты и линтеры, поднимаем окружения dev, stage и prod, настраиваем деплой по веткам, откат и уведомления. Каждый этап показываем в работе, чтобы команда сразу видела отдачу и осваивала конвейер постепенно.

Особое внимание — выбору инструмента под ваш стек. Если репозиторий уже в GitLab, логично настроить GitLab CI; если в GitHub — GitHub Actions; для сложной инфраструктуры и нескольких команд подходит Jenkins. Мы не навязываем один инструмент, а берём тот, что удобнее вашей команде. Если у проекта пока нет репозитория и код живёт только на сервере, первым шагом помогаем привести проект в Git — без этого конвейер невозможен. Эта работа смыкается с настройкой отката и Git-workflow для Битрикс, где мы наводим порядок в ветках и истории.

Гарантии и прозрачность

Состав работ и стоимость мы закрепляем до старта, а доработки сверх плана согласуем отдельно — никаких сюрпризов в счёте. Конвейер настраиваем поверх существующего проекта без переписывания кода, поэтому боевой сайт продолжает работать всё время внедрения. Описание pipeline лежит в вашем репозитории, а не в наших закрытых системах. По завершении передаём документацию, обучаем команду и отдаём доступы: конвейер остаётся вашим без привязки к подрядчику. Развивать и сопровождать его сможет как наша команда, так и любая другая.

Возражения, которые мы слышим чаще всего

«У нас нет тестов, значит, CI/CD нам рано». Наоборот: конвейер приносит пользу даже без единого теста. Линтеры и статический анализ ловят ошибки без запуска кода, а автодеплой убирает ручное копирование и его ошибки. Полноценное покрытие тестами наращивается постепенно, уже на работающем конвейере. Ждать, пока появятся тесты, чтобы начать автоматизировать релизы, — значит терять время и продолжать ломать прод вручную.

«Боимся, что во время выкатки сайт упадёт». Именно поэтому мы делаем деплой атомарным: новый релиз собирается рядом с текущим, а переключение на него мгновенно. Посетитель не попадает на полусобранный сайт. А если новый релиз окажется проблемным, откат возвращает прошлую рабочую версию за секунды. С конвейером выкатка становится безопаснее ручной, а не опаснее. Эта же логика лежит в основе автоматического деплоя без простоя, который мы настраиваем для боевых сайтов с высокой нагрузкой.

«Это сложно и команда не разберётся». Конвейер мы не оставляем чёрным ящиком: документируем каждый шаг и обучаем команду работе с pipeline. После внедрения разработчики понимают, что происходит на каждом этапе, и могут сами развивать конвейер. Описание лежит в репозитории в читаемом виде, поэтому новый сотрудник быстро входит в курс дела. Цель — чтобы конвейер был инструментом команды, а не зависимостью от подрядчика.

Сценарии, под которые мы собираем конвейер

Проекты бывают очень разными, и конвейер подстраивается под вашу ситуацию. Для интернет-магазина на старте обычно достаточно автосборки ассетов и автодеплоя на одно окружение, чтобы убрать ручной FTP и ускорить выкатки. По мере роста добавляем stage для приёмки релизов и автотесты ключевых сценариев оформления заказа. Для B2B-платформы с активной разработкой на первый план выходят тесты и линтеры как ворота качества: красная сборка не должна пускать код на боевой сайт, где работают контрагенты.

Для корпоративного портала с несколькими командами важны изоляция и параллельность: каждой команде — свой stage, общий конвейер сборки и контролируемая выкатка на prod. Здесь хорошо ложатся контейнеризация и параллельные пайплайны, чтобы сборки не мешали друг другу. Для проекта с тесной интеграцией с 1С отдельное внимание уделяем тому, чтобы деплой кода не задевал обмен и пользовательские данные. Все эти сценарии собираются из одних и тех же кирпичей конвейера, но в разной комплектации под задачу.

Чем конвейер выгоднее альтернатив

У команды обычно три пути сделать релизы надёжнее: оставить ручную выкатку и просто стараться аккуратнее, написать разовый скрипт деплоя силами одного разработчика или построить полноценный конвейер CI/CD. Аккуратность не масштабируется: рано или поздно усталость или спешка приводят к ошибке на проде. Разовый скрипт лучше ручного FTP, но обычно не имеет проверок, журнала и отката, а знает его один человек — если он уходит, скрипт превращается в чёрный ящик, который никто не решается трогать.

Полноценный конвейер лишён этих ограничений. Он описан в репозитории, понятен всей команде и включает проверки, журнал и откат с первого дня. Он не зависит от одного человека и развивается вместе с проектом. Вы вкладываетесь в настройку один раз, а дальше получаете предсказуемые релизы и сэкономленные часы команды каждый месяц. Когда проект растёт и релизов становится больше, именно конвейер оказывается и дешевле в долгую, и надёжнее по результату.

Этапы работы по шагам

Чтобы внедрение было предсказуемым, мы разбиваем его на понятные этапы с результатом на каждом. Первый этап — аудит релизов: разбираем текущий процесс выкатки, репозиторий, серверы и окружения, фиксируем узкие места. Второй этап — Git-флоу: согласуем модель ветвления и правила, какая ветка на какое окружение уходит и кто подтверждает прод. Третий этап — сборка и проверки: подключаем сборку ассетов, автотесты и линтеры, настраиваем артефакты и кэширование зависимостей, чтобы конвейер работал быстро.

Четвёртый этап — деплой и окружения: поднимаем dev, stage и prod, настраиваем выкатку по веткам и безопасную атомарную доставку на боевой сайт. Пятый — откат и контроль качества: включаем версионирование релизов, быстрый откат, уведомления и журнал выкаток. Финальный этап — передача и обучение: документируем конвейер, обучаем команду работе с pipeline и передаём доступы. Каждый этап мы показываем в работе, поэтому вы видите прогресс и понимаете, за что платите, а не получаете готовый чёрный ящик в конце.

Гарантии и сопровождение

Мы понимаем, что конвейер становится частью ежедневной работы команды, поэтому к надёжности относимся серьёзно. Состав и стоимость закрепляем в смете до старта, а доработки сверх плана согласуем отдельно — вы всегда понимаете, за что платите. Перед передачей тестируем ключевые сценарии: сборку, прогон тестов, деплой на каждое окружение, откат к прошлой версии. После запуска даём гарантийный период, в течение которого устраняем замечания, и предлагаем сопровождение с развитием конвейера по мере роста проекта. Резервные копии, журналирование выкаток и разграничение доступов закладываем с первого дня, чтобы релизы были под контролем.

Ещё несколько частых вопросов

«Что будет с текущими релизами во время внедрения». Боевой сайт продолжает работать, а команда переходит на конвейер постепенно, начиная с одного окружения, поэтому переход не останавливает разработку. «Можно ли потом перенести конвейер на другой раннер». Да, принципы конвейера универсальны, поэтому перенос с GitLab CI на GitHub Actions или Jenkins возможен, отличается только описание шагов. «Сколько релизов в день выдержит конвейер». Конвейер не ограничивает частоту выкаток: можно деплоить хоть несколько раз в день, а кэширование зависимостей и параллельные шаги держат сборку быстрой даже при активной разработке.

С чего начать

Начните с разговора. Расскажите о вашем проекте, стеке и текущем процессе релизов — мы проведём бесплатный аудит, покажем узкие места и предложим состав конвейера под вашу задачу, а смету пришлём в течение рабочего дня. По итогам аудита вы получите честную картину: какой уровень CI/CD вам нужен, что настроить в первую очередь и какой эффект это даст. Обсудим ваш проект — и превратим выкатку релизов из источника стресса в спокойный конвейер, который работает за команду.

Вопросы и ответы

Частые вопросы о CI/CD для Битрикс-проектов

Что такое CI/CD простыми словами? +

CI/CD — это два связанных процесса. Continuous Integration (непрерывная интеграция) означает, что код из репозитория автоматически собирается и проверяется тестами и линтерами при каждом изменении. Continuous Delivery или Deployment (непрерывная доставка или развёртывание) означает, что проверенный код автоматически доставляется на серверы. Проще говоря, это конвейер, который сам собирает, проверяет и выкатывает ваш сайт без ручного копирования файлов.

Что такое конвейер (pipeline) в CI/CD? +

Конвейер — это последовательность автоматических шагов, которые выполняются над вашим кодом после коммита. Типичные шаги: установка зависимостей, сборка ассетов, прогон тестов, проверка линтерами и деплой на окружение. Если любой шаг падает, конвейер останавливается и не пускает код дальше. Так сломанный релиз не доходит до боевого сайта.

Чем отличается Continuous Delivery от Continuous Deployment? +

Continuous Delivery означает, что релиз всегда готов к выкатке, но финальный деплой на прод запускает человек по кнопке. Continuous Deployment означает, что код, прошедший все проверки, выкатывается на прод полностью автоматически, без ручного подтверждения. Для Битрикс-проектов мы чаще делаем Delivery с ручным подтверждением на prod — так за выкатку на боевой сайт всегда отвечает человек.

Зачем CI/CD проекту на 1С-Битрикс? +

Потому что ручные релизы по FTP на Битрикс особенно рискованны: легко затереть чужие файлы, оставить старый кэш или сломать боевой сайт прямой правкой. Конвейер убирает ручную рутину, прогоняет проверки до выката и даёт быстрый откат. Команда выкатывает релизы чаще и спокойнее, а боевой сайт перестаёт падать из-за человеческой ошибки.

Что такое деплой и чем он отличается от сборки? +

Сборка (build) — это подготовка кода к запуску: установка зависимостей, компиляция и минификация стилей и скриптов, формирование артефакта. Деплой (deploy) — это доставка готового артефакта на сервер и переключение сайта на новую версию. В конвейере сборка идёт первой и общая для всех окружений, а деплой выполняется отдельно на каждое окружение по своим правилам.

С какими системами CI/CD вы работаете? +

Настраиваем конвейеры в GitLab CI, GitHub Actions и Jenkins — берём ту систему, которая уже есть в вашей команде или удобнее для вашей инфраструктуры. Если репозиторий лежит в GitLab, логично использовать GitLab CI, если в GitHub — GitHub Actions. Jenkins подходит для сложной инфраструктуры и нескольких команд. Принципы конвейера одинаковы, отличается только синтаксис описания.

Чем отличаются GitLab CI, GitHub Actions и Jenkins? +

GitLab CI встроен в GitLab и описывается одним файлом в репозитории, его удобно использовать, если код уже там. GitHub Actions так же встроен в GitHub и хорош для проектов на этой площадке. Jenkins — отдельный сервер автоматизации, который не привязан к хостингу репозитория и гибко настраивается под сложные сценарии и несколько команд. Мы подбираем инструмент под вашу ситуацию, а не навязываем один.

Какие линтеры и анализаторы вы подключаете? +

Для PHP это PHP_CodeSniffer для проверки стиля кода и PHPStan или Psalm для статического анализа, который ловит ошибки без запуска. Для фронтенда подключаем ESLint и Stylelint. Линтеры встраиваются в конвейер как отдельный шаг и не пускают код с нарушениями дальше, поэтому качество кода держится на одном уровне у всей команды.

Какие автотесты можно прогонять в конвейере? +

Для Битрикс-проектов это юнит-тесты на PHPUnit для отдельной логики, функциональные и приёмочные тесты на Codeception, а также дымовые проверки доступности ключевых страниц. Тесты запускаются в конвейере на изолированном окружении, и если хоть один падает, релиз не уходит на прод. Набор тестов подбираем под проект и наращиваем постепенно.

Нужна ли для CI/CD контейнеризация и Docker? +

Не обязательно, но во многих случаях полезно. Docker даёт одинаковое окружение на сборке и на серверах, убирает проблему «у меня работает, а на проде нет» и упрощает параллельные пайплайны. Если проект небольшой, можно обойтись без контейнеров. Контейнеризацию подключаем там, где она реально снижает риски, а не ради моды.

Зачем нужны окружения dev, stage и prod? +

Это три изолированные среды под разные задачи. Dev — для быстрой разработки и проверки фич, его не страшно сломать. Stage — копия прода для приёмки релиза заказчиком и финальных проверок. Prod — боевой сайт, который видят клиенты. Разделение убирает правки на боевом сайте: на prod попадает только то, что прошло конвейер и приёмку на stage.

Как работает деплой по веткам? +

Каждой ветке Git соответствует своё окружение. Например, ветки фич выкатываются на dev, ветка release — на stage для приёмки, а ветка master или production — на prod. Конвейер сам определяет по имени ветки, куда доставлять код. Разработчику не нужно думать о выкатке вручную: он просто пушит в нужную ветку, а остальное делает pipeline.

Можно ли выкатывать релизы без простоя сайта? +

Да. Деплой настраиваем атомарно: новый релиз разворачивается в отдельной папке рядом с текущим, а в финале символическая ссылка мгновенно переключается на него. Посетитель в момент выката не попадает на полусобранный сайт. Если новый релиз окажется проблемным, ссылка так же быстро переключается обратно — это и есть быстрый откат.

Что делать со специфичными для Битрикс папками при деплое? +

Папки с пользовательскими данными — /upload, кэш и логи — выносятся за пределы релиза и подключаются ссылками, чтобы не перезаписываться при каждой выкатке. Ядро /bitrix и публичную часть деплоим из репозитория. Так обновления кода не затрагивают загруженные файлы и настройки, а откат не теряет пользовательский контент.

Как конвейер дружит с обменом 1С и кэшем Битрикс? +

Обмен с 1С работает с данными и не затрагивается выкаткой кода, а файлы обмена выносятся в постоянные папки, как и /upload. Кэш Битрикс сбрасываем управляемо на нужном шаге деплоя, чтобы после релиза не оставалось старых страниц. Эти нюансы мы учитываем именно потому, что специализируемся на проектах 1С-Битрикс.

Как конвейер не пускает плохой код на прод? +

В конвейере есть шаги-ворота: сборка, тесты и линтеры. Если любой из них завершается с ошибкой, pipeline помечается красным и деплой на прод просто не запускается. На боевой сайт попадает только релиз с полностью зелёным конвейером. Это убирает класс проблем, когда сломанный или несобранный код оказывался на проде по невнимательности.

Что такое откат (rollback) и как быстро он работает? +

Откат — это возврат боевого сайта на предыдущий рабочий релиз. Поскольку релизы версионируются и хранятся, откат сводится к переключению символической ссылки на прошлую версию и занимает секунды. Не нужно искать бэкап и разворачивать его вручную. Откат — обязательная часть конвейера, которую мы настраиваем сразу.

Ведётся ли журнал выкаток? +

Да. Каждый деплой записывается: что выкатили, какой коммит, кто запустил и когда. По журналу всегда видно, какая версия сейчас на проде и что менялось в прошлых релизах. Это помогает быстро разобраться, если после какой-то выкатки появилась проблема, и принять решение об откате на конкретную версию.

Получает ли команда уведомления о релизах? +

Да. Конвейер шлёт уведомления о статусе сборки и деплоя в Telegram, почту или мессенджер команды. Если сборка упала, ответственный узнает об этом сразу, а не от клиента. Об успешной выкатке на прод тоже приходит сообщение, поэтому вся команда видит, какой релиз сейчас на боевом сайте.

Что такое контроль качества релиза в конвейере? +

Это набор автоматических проверок перед выкаткой: тесты, линтеры, статический анализ и дымовые проверки доступности страниц. Дополнительно на prod ставим ручное подтверждение, чтобы за финальный выпуск отвечал человек. Вместе это и есть контроль качества: релиз проходит несколько фильтров и только потом доходит до клиентов.

У нас уже работает проект, можно ли внедрить CI/CD без переделки? +

Да. Конвейер настраивается поверх существующего проекта без переписывания кода. Мы разбираем, как устроен ваш репозиторий и серверы, и встраиваем сборку и деплой в текущий процесс. Боевой сайт при этом продолжает работать, а команда переходит на конвейер постепенно, начиная с одного окружения.

Что нужно от нас для старта? +

Доступ к репозиторию, к серверам с окружениями и понимание текущего процесса релизов. Если у вас нет репозитория или код лежит только на сервере, мы поможем привести проект в Git как первый шаг. На бесплатном аудите релизов мы разбираем, что уже есть, и составляем план внедрения конвейера.

Сколько стоит настройка CI/CD? +

Базовый конвейер с автосборкой и деплоем на одно окружение обычно начинается от 45 000 рублей. Полный CI/CD с тремя окружениями, тестами и деплоем по веткам — от 120 000 рублей. Конвейер для нескольких команд с контейнерами — от 240 000 рублей. Точная цена зависит от числа окружений, сложности сборки и набора проверок, смету присылаем после аудита.

За какой срок реально настроить конвейер? +

Базовый автоконвейер на одно окружение запускаем за два-три дня. Полную доставку с окружениями dev, stage и prod, тестами и откатом настраиваем примерно за две недели. Конвейер под несколько команд с контейнеризацией занимает около четырёх недель. Точный срок фиксируем в смете до старта работ.

Что мы получаем по итогу проекта? +

Работающий конвейер CI/CD, описание которого лежит в вашем репозитории, настроенные окружения и деплой, быстрый откат и журнал выкаток. Плюс документацию и обучение команды. Конвейер остаётся вашим без привязки к подрядчику: развивать и сопровождать его сможет как наша команда, так и любой другой исполнитель.

Начать проект

Обсудим ваш конвейер CI/CD?

Расскажите о вашем проекте и текущих релизах — проведём бесплатный аудит, предложим состав конвейера под вашу задачу и пришлём смету в течение рабочего дня.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета