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

CI — це практика розробки, при якій код автоматично збирається та тестується щоразу, коли розробник вносить зміни в репозиторій.

CI Tools: GitHub Actions, GitLab CI, CircleCI, Jenkins, Travis CI. Best Practices: 1. Maintain a single source repository. 2. Automate the build. 3. Keep the build fast. 4. Test in a clone of the production environment. 5. Make it easy for everyone to get the latest executable.

        graph LR
  Center["Безперервна інтеграція (CI)"]:::main
  Rel_encryption["encryption"]:::related -.-> Center
  click Rel_encryption "/terms/encryption"
  Rel_post_quantum_cryptography["post-quantum-cryptography"]:::related -.-> Center
  click Rel_post_quantum_cryptography "/terms/post-quantum-cryptography"
  Rel_homomorphic_encryption["homomorphic-encryption"]:::related -.-> Center
  click Rel_homomorphic_encryption "/terms/homomorphic-encryption"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простими словами

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

🤓 Expert Deep Dive

Технічно CI-процес закінчується створенням 'Артефакту' (готового до запуску файлу або Docker-образу). Наступний етап — CD (Continuous Delivery/Deployment) — відповідає за те, щоб цей артефакт потрапив на сервери. Важливою частиною CI є 'Linting' (перевірка стилю коду) та 'SAST' (автоматичний пошук вразливостей). Ефективний CI-пайплайн дозволяє великим компаніям робити сотні оновлень на день без ризику зупинити сервіс.

📚 Джерела