[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"general-list":3,"footer-feature-tags":4,"slate-glossary-term-continuous-integration":66},true,[5,14,20,29,34,40,46,52,56,62],{"id":6,"name":7,"hex":8,"translations":9,"count_pages":13},8,"Компания","#f40925",{"ru":10,"en":11},{"name":7},{"name":12},"Company",9,{"id":15,"name":16,"hex":17,"translations":18,"count_pages":6},26,"Главная страница",null,{"ru":19},{"name":16},{"id":21,"name":22,"hex":23,"translations":24,"count_pages":28},2,"Проекты","#3027ff",{"ru":25,"en":26},{"name":22},{"name":27},"Project",15,{"id":30,"name":31,"hex":17,"translations":32,"count_pages":21},33,"ИИ",{"ru":33},{"name":31},{"id":35,"name":36,"hex":17,"translations":37,"count_pages":39},34,"Комментарии",{"ru":38},{"name":36},4,{"id":41,"name":42,"hex":17,"translations":43,"count_pages":45},25,"Задачи",{"ru":44},{"name":42},24,{"id":47,"name":48,"hex":17,"translations":49,"count_pages":51},27,"Рабочие пространства",{"ru":50},{"name":48},3,{"id":45,"name":53,"hex":17,"translations":54,"count_pages":6},"Kanban-доска",{"ru":55},{"name":53},{"id":57,"name":58,"hex":17,"translations":59,"count_pages":61},23,"Диаграмма Ганта",{"ru":60},{"name":58},1,{"id":28,"name":63,"hex":17,"translations":64,"count_pages":61},"Календарь",{"ru":65},{"name":63},{"detail":67,"more":180},{"id":68,"slug":69,"translations":70,"category":84,"tags":91,"letter":119,"og_image":17,"cover":17,"author_name":17,"author_position":17,"author_avatar":17,"faqs":120,"related":134,"views_count":35,"helpful_yes_count":123,"helpful_no_count":123,"created_at":177,"updated_at":178,"published_at":179},395,"continuous-integration",{"ru":71},{"title":72,"short_definition":73,"tldr":74,"full_explanation":75,"when_to_apply":76,"when_not_to_apply":77,"examples":78,"tips":79,"synonyms":80,"translation_en":81,"seo_title":82,"seo_description":83},"Непрерывная интеграция (CI)","Практика, при которой изменения от всех разработчиков попадают в общую ветку по нескольку раз в день и каждый раз автоматически собираются и проверяются тестами.","Непрерывная интеграция снимает боль, знакомую по проектам с длинными ветками: две недели все пишут по отдельности, а потом неделю сводят результат. При CI изменения вливаются в общую ветку минимум раз в день, каждое вливание запускает сборку и тесты, а сломанная сборка чинится в первую очередь. Термин появился у Грейди Буча в книге 1991 года, практикой его сделало экстремальное программирование, а массовым — статья Мартина Фаулера 2000 года.","\u003Cp>Стоимость слияния растёт нелинейно. Два дня расхождения сводятся за полчаса, две недели — за неделю, и половина этой недели уходит на разбор конфликтов, смысл которых уже никто не помнит. CI держит расхождение маленьким принудительно.\u003C\u002Fp>\u003Ch3>Из чего состоит\u003C\u002Fh3>\u003Cul>\u003Cli>Единый репозиторий, где лежит всё нужное для сборки.\u003C\u002Fli>\u003Cli>Сборка запускается одной командой и не требует ручных шагов.\u003C\u002Fli>\u003Cli>Каждое вливание в основную ветку запускает сборку и автотесты.\u003C\u002Fli>\u003Cli>Результат сборки виден всей команде.\u003C\u002Fli>\u003Cli>Сломанная сборка чинится раньше любой другой работы.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Последний пункт отличает работающий CI от установленного сервера сборки. Красная сборка, которую все привыкли игнорировать, обходится дороже её отсутствия: она приучает не смотреть на сигнал.\u003C\u002Fp>\u003Ch3>Границы термина\u003C\u002Fh3>\u003Cp>CI отвечает за то, что изменения собираются и проходят проверки. За подготовку версии к выкату отвечает непрерывная поставка, за автоматический выкат в промышленную среду — непрерывное развёртывание. Три практики часто называют одной аббревиатурой, хотя внедряют их по очереди.\u003C\u002Fp>","\u003Cul>\u003Cli>Над кодом работает больше одного человека\u003C\u002Fli>\u003Cli>Слияния регулярно превращаются в отдельный проект\u003C\u002Fli>\u003Cli>Есть автотесты или их можно написать хотя бы на ключевые сценарии\u003C\u002Fli>\u003C\u002Ful>","\u003Cul>\u003Cli>Разработчик один и ветка одна: пользы от практики почти нет\u003C\u002Fli>\u003Cli>Сборка идёт часами и вердикт приходит на следующий день — сначала чинят время сборки\u003C\u002Fli>\u003C\u002Ful>","\u003Cp>Команда переходит с двухнедельных веток на ежедневные вливания. Сборка на каждый коммит занимает восемь минут, набор тестов — ещё двенадцать. В первый месяц сборка краснеет почти каждый день, и это выглядит ухудшением. На деле те же ошибки раньше находились на приёмке, только через две недели и без понимания, чьё изменение их принесло.\u003C\u002Fp>","\u003Cp>Первым делом измерьте время от коммита до вердикта. Пока оно больше десяти минут, разработчики перестают ждать результат и уходят к следующей задаче, и смысл быстрой обратной связи теряется. Разбор красных сборок удобно вести обычными задачами в Shtab: у поломки появляется ответственный и срок, и она перестаёт висеть «на команде».\u003C\u002Fp>","непрерывная интеграция, CI, continuous integration, постоянная интеграция, автосборка","Continuous Integration (CI)","Непрерывная интеграция (CI) — что это | Глоссарий Shtab","Непрерывная интеграция: ежедневные вливания в общую ветку, автосборка и тесты, правило чинить красную сборку первой. Чем CI отличается от CD и с чего начать.",{"id":61,"slug":85,"hex":86,"icon":17,"order":61,"translations":87},"agile","#5e79ec",{"ru":88},{"title":89,"description":90},"Agile","Гибкие методологии разработки и управления проектами: Scrum, Kanban, XP и их элементы — спринты, бэклоги, церемонии, роли.",[92,101,110],{"id":93,"slug":94,"kind":95,"hex":96,"order":97,"translations":98},14,"process","phase","#4b5370",22,{"ru":99},{"title":100},"Процесс",{"id":102,"slug":103,"kind":104,"hex":105,"order":106,"translations":107},31,"quality","other","#0F9488",71,{"ru":108},{"title":109},"Качество",{"id":111,"slug":112,"kind":113,"hex":114,"order":115,"translations":116},32,"automation","tool","#7c5ce6",72,{"ru":117},{"title":118},"Автоматизация","Н",[121,128],{"id":122,"order":123,"translations":124},1757,0,{"ru":125},{"question":126,"answer":127},"Чем непрерывная интеграция отличается от непрерывной поставки?","\u003Cp>Интеграция доводит изменения до состояния «собирается и проходит тесты». Поставка добавляет автоматическую подготовку версии к выкату на любую среду, а решение о выкате остаётся за человеком. Непрерывное развёртывание убирает и это решение.\u003C\u002Fp>",{"id":129,"order":61,"translations":130},1758,{"ru":131},{"question":132,"answer":133},"Достаточно ли поставить сервер сборки?","\u003Cp>Сервер — только половина. Практика начинается там, где команда вливается в общую ветку ежедневно и чинит красную сборку раньше остальной работы. Без этих двух привычек сервер собирает раз в неделю и показывает красный экран, на который все привыкли не смотреть.\u003C\u002Fp>",{"related":135},[136,143,150,157,164,171],{"id":137,"slug":138,"translations":139},393,"extreme-programming",{"ru":140},{"title":141,"short_definition":142},"Экстремальное программирование (XP)","Гибкая методология разработки Кента Бека: короткие циклы, тесты до кода, парная работа и постоянная сборка доведены до предела.",{"id":144,"slug":145,"translations":146},394,"tdd",{"ru":147},{"title":148,"short_definition":149},"TDD (разработка через тестирование)","Способ писать код, при котором сначала появляется падающий тест, потом минимальный код для его прохождения, потом уборка.",{"id":151,"slug":152,"translations":153},397,"refactoring",{"ru":154},{"title":155,"short_definition":156},"Рефакторинг (Refactoring)","Изменение внутреннего устройства кода без изменения его поведения: код становится понятнее и дешевле в правке, а результат работы остаётся прежним.",{"id":158,"slug":159,"translations":160},78,"quality-gate",{"ru":161},{"title":162,"short_definition":163},"Quality Gate (контрольная точка проекта)","Контрольная точка между фазами проекта, на которой проверяется соответствие критериям перед переходом дальше.",{"id":165,"slug":166,"translations":167},220,"workflow-automation",{"ru":168},{"title":169,"short_definition":170},"Workflow Automation (автоматизация рабочих процессов)","Автоматизация цепочки задач между людьми и системами с помощью специальных платформ — Zapier, Make, n8n и аналогов.",{"id":57,"slug":172,"translations":173},"increment",{"ru":174},{"title":175,"short_definition":176},"Increment (инкремент)","Готовая к выпуску часть продукта, созданная командой за один спринт.","2026-08-30T15:05:43.182646+03:00","2026-08-30T15:05:43.182661+03:00","2026-08-30T15:05:43.248070+03:00",[181,201,219],{"id":61,"slug":85,"translations":182,"category":185,"tags":188,"letter":199,"cover":17,"updated_at":200,"published_at":17},{"ru":183},{"title":89,"short_definition":184,"translation_en":89},"Семейство гибких подходов к разработке продуктов и управлению проектами, основанное на коротких итерациях и быстрой адаптации к изменениям.",{"id":61,"slug":85,"hex":86,"icon":17,"order":61,"translations":186},{"ru":187},{"title":89,"description":90},[189,194],{"id":61,"slug":190,"kind":190,"hex":86,"order":61,"translations":191},"methodology",{"ru":192},{"title":193},"Методология",{"id":6,"slug":195,"kind":104,"hex":96,"order":6,"translations":196},"concept",{"ru":197},{"title":198},"Концепция","A","2026-04-25T22:42:14.793028+03:00",{"id":97,"slug":202,"translations":203,"category":208,"tags":211,"letter":199,"cover":17,"updated_at":218,"published_at":17},"acceptance-criteria",{"ru":204},{"title":205,"short_definition":206,"translation_en":207},"Acceptance Criteria (критерии приёмки)","Конкретные проверяемые условия, которым должна соответствовать пользовательская история, чтобы её приняли как выполненную.","Acceptance Criteria",{"id":61,"slug":85,"hex":86,"icon":17,"order":61,"translations":209},{"ru":210},{"title":89,"description":90},[212],{"id":39,"slug":213,"kind":104,"hex":214,"order":39,"translations":215},"artifact","#888ca0",{"ru":216},{"title":217},"Артефакт","2026-04-25T22:42:15.380450+03:00",{"id":220,"slug":221,"translations":222,"category":227,"tags":230,"letter":240,"cover":17,"updated_at":241,"published_at":17},10,"burndown-chart",{"ru":223},{"title":224,"short_definition":225,"translation_en":226},"Burndown chart (диаграмма сгорания)","График, который показывает, сколько работы осталось в спринте или релизе по дням.","Burndown chart",{"id":61,"slug":85,"hex":86,"icon":17,"order":61,"translations":228},{"ru":229},{"title":89,"description":90},[231,234],{"id":39,"slug":213,"kind":104,"hex":214,"order":39,"translations":232},{"ru":233},{"title":217},{"id":235,"slug":236,"kind":236,"hex":105,"order":235,"translations":237},6,"metric",{"ru":238},{"title":239},"Метрика","B","2026-04-25T22:42:15.056246+03:00"]