Безперервна інтеграція

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Безперервна інтеграція (англ. Continuous Integration) - це практика розробки програмного забезпечення, яка полягає у виконанні частих автоматизованих збірок проекту для якнайшвидшого виявлення та вирішення інтеграційних проблем . У звичайному проекті, де над різними частинами системи розробники працюють незалежно, стадія інтеграції є завершальною. Вона може непередбачувано затримати закінчення робіт. Перехід до безперервної інтеграції дозволяє знизити трудомісткість інтеграції і зробити її більш передбачуваною за рахунок найбільш раннього виявлення та усунення помилок і протиріч.

Вимоги до проекту[ред.ред. код]

  • Вихідні коди і все, що необхідно для побудови та тестування проекту, зберігається в репозиторії системи керування версіями;
  • Операції копіювання з репозиторію, збірки і тестування всього проекту автоматизовані і легко викликаються із зовнішньої програми.

Організація[ред.ред. код]

На виділеному сервері організовується служба, до завдань якої входять:

  • Отримання вихідного коду з репозиторію;
  • Складання проекту;
  • Виконання тестів;
  • Розгортання готового проекту;
  • Відправлення звітів.

Локальна збірка може здійснюватися:

  • За зовнішнім запитом,
  • За розкладом,
  • За фактом оновлення репозиторію і за іншими критеріями.

Білд за розкладом[ред.ред. код]

У разі складання за розкладом, вони, як правило, проводяться кожної ночі в автоматичному режимі -нічні збірки(щоб до початку робочого дня були готові результати тестування). Для розрізнення додатково вводиться система нумерації збірок - зазвичай, кожна збірка нумерується натуральним числом, яке збільшується з кожною новою збіркою. Вихідні тексти та інші вихідні дані при взятті їх з репозиторію системи контролю версій позначаються номером збірки. Завдяки цьому, точно така ж збірка може бути точно відтворена в майбутньому - достатньо взяти вихідні дані по потрібній мітці і знову запустити процес. Це дає можливість повторно випускати навіть дуже старі версії програми з невеликими виправленнями.

Переваги[ред.ред. код]

  • Проблеми інтеграції виявляються і виправляються швидко, що виявляється дешевше;
  • Негайний прогін модульних тестів для свіжих змін;
  • Постійна наявність поточної стабільної версії разом з продуктами збірок - для тестування, демонстрації, тощо п.
  • Негайний ефект від неповного або непрацюючого коду привчає розробників до роботи в ітеративному режимі з більш коротким циклом.

Недоліки[ред.ред. код]

  • Витрати на підтримку роботи безперервної інтеграції;
  • Потенційна необхідність у виділеному сервері під потреби безперервної інтеграції;
  • Негайний ефект від неповного або непрацюючого коду відучує розробників від виконання періодичних резервних включень коду в репозиторій.
    • У разі використання системи управління версіями вихідного коду з підтримкою розгалуження, ця проблема може вирішуватися створенням окремої "гілки" (англ. відділення) проекту для внесення великих змін (код, розробка якого до працездатного варіанту займе кілька днів, але бажано частіше резервне копіювання в репозиторій). Після закінчення розробки та індивідуального тестування такої гілки, вона може бути об'єднана (англ. злиття) з основним кодом або "стволом" (англ. стовбур) проекту.

Див. також[ред.ред. код]

Посилання[ред.ред. код]