Постійна інтеграція як термін позначає дві чіткі ідеї.
Перший - це робочий процес: замість того, щоб усі в команді працювали над власною галуззю, а потім через пару тижнів програмування намагалися об'єднати свої зміни в основну лінію, що зміни інтегруються (майже) постійно. Це дозволяє завчасно виникнути проблеми та уникати несумісних змін. Однак це вимагає, щоб ми могли легко перевірити, чи працює «зміна».
Тут іде друга ідея, яка виявилася набагато популярнішою. Сервер CI - це чисте середовище, де зміни тестуються якомога швидше. Чисте навколишнє середовище необхідне для відтворення конструкції. Якщо це працює один раз, воно завжди має працювати. Це дозволяє уникнути проблем "але це працювало на моїй машині". Зокрема, сервер CI є цінним, коли ваше програмне забезпечення працює в різних системах або в різних конфігураціях, і вам потрібно бути впевненим, що все працює.
Відсутність кроку збирання не має значення. Однак CI має сенс лише в тому випадку, якщо у вас є тестовий набір. Цей тестовий набір повинен бути автоматичним і не повинен мати збоїв. Якщо тести не спрацьовують, відповідний розробник повинен отримати сповіщення, щоб вони могли виправити введену проблему ("розбиття збірки", навіть коли немає збірки як компіляції).
Виявляється, такий сервер є цінним для більш ніж просто тестування. Насправді, більшість програмного забезпечення CI справді лайно під час виконання тестів у різних конфігураціях, але добре керувати різними робочими завданнями. Наприклад, на додаток до «безперервних» тестів на одиницю, може бути повний тест у вигляді нічного складання. Програмне забезпечення може бути протестовано з декількома версіями Python, різними версіями бібліотеки. Веб-сайт може бути перевірений на наявність мертвих посилань. Ми можемо проводити статичний аналіз, перевірку стилів, засоби перевірки тестування тощо над кодом. Документацію можна створити. Коли всі тестові набори пройдуть, процес упаковки може бути ініційований, щоб ви були готові випустити своє програмне забезпечення. Це корисно у спритних налаштуваннях, де ви хочете, щоб продукт, який можна розгортати, завжди можна було розгортати. З розвитком веб-додатків з’являється і ідея постійного розгортання: Якщо всі тести пройдуть, ми можемо автоматично підштовхнути зміни до виробництва. Звичайно, це вимагає, щоб ви були справді впевнені у своєму тестовому наборі (якщо ні, у вас є більші проблеми).