Однією з моїх ролей у моїй команді є людина, яка будує . Я несу відповідальність за підтримку / оновлення наших сценаріїв збірки та переконуюсь, що ми «плавно» будуємо на сервері безперервної інтеграції. Зазвичай я не заперечую проти цієї роботи, хоча часто відчувається, що я постійно няньчу на сервері CI.
Ця робота може часом дратувати, тому що, якщо збірка перервана, я повинен відкинути історію, над якою працюю, і дослідити збій збірки. У нашій команді щодня трапляються невдачі. Іноді розробники просто не будують локально, перш ніж зробити так, щоб тести не спрацювали на сервері CI. У цій ситуації мені подобається швидко дістатись до людини, яка мала «поганий вчинок», тому збірка не залишається надто тривалою. Іноді (набагато рідше) на сервері CI існує дивна умова, яку потрібно налагодити.
Я знаю, що багато зрілих команд використовують безперервну інтеграцію, але там не так багато матеріалів про добрі практики.
Чи вказують мої проблеми на те, що наша безперервна інтеграція не дуже зріла, чи це просто частина роботи?
Яких корисних практик слід дотримуватися? Які особливості зрілої безперервної інтеграції ?
Оновлення
Замість відповіді на деякі коментарі я збираюся зробити оновлення замість цього. У нас є одна проста команда, яка робить саме те, що буде робити сервер збирання при створенні програми. Він буде компілювати, запускати весь блок / інтеграцію та деякі швидкі тести на основі інтерфейсу.
Читаючи відповіді кожного, відчувається, що у нас можуть виникнути дві основні проблеми.
- Сервер CI не скаржиться досить голосно, коли збірка не працює.
- Розробники не відчувають відповідальності кожного за те, щоб переконатися, що їхні зобов'язання пройшли успішно.
У моїй команді все складніше - це те, що у нас є велика команда (10+ розробників). І у нас є кілька членів команди, які беруть участь в офшорній зоні, коли ми навіть не працюємо. Оскільки команда чисельна, і ми встановили, що часті, невеликі події віддають перевагу, ми іноді дійсно маємо велику активність за день.